共計 1515 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 mysql 中 join 和 on 怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
用法:1、join 用于根據(jù)兩個或多個表中的列之間的關(guān)系,獲取存在于不同表中的數(shù)據(jù),具有連接的作用,語法為“表 1 join 表 2”;2、on 用于給連接的兩個表之間添加約束條件,語法為“表 1 join 表 2 on 條件”。
本教程操作環(huán)境:windows10 系統(tǒng)、mysql8.0.22 版本、Dell G3 電腦。
MySQL 中 join 的用法:join 具有連接的作用,即當兩個或者兩個以上的表有關(guān)系時,需要用 join 來連接這些相關(guān)的表,來處理或分析數(shù)據(jù):
join 的用法:連接舉例先看看,就懂了:
例如:有一個表叫做 stu, 一個表叫 class,stu join class 會生成一個新的表,
我們執(zhí)行:stu join class 后,新的表成為:
通過上面的例子總結(jié)一下:
join 后的列名是兩個表列名加起來的,可能會產(chǎn)生相同的列名,如 id 和 name
先用表 stu 中的一行數(shù)據(jù)和表 class 中的每一行數(shù)據(jù)不斷的拼接,產(chǎn)生新的行
再用表 stu 的第二行去和表 class 中的每一行數(shù)據(jù)拼接,以此類推
表 stu 是 3 行,表 class 是 2 行,所以按照上面的規(guī)律會產(chǎn)成 3 *2 = 6 行的新的表
on 的用法:添加約束
一般我們 join 后的表,并不是我們想要的,這時,可以用 ON 來加一些條件:
例如:stu join class on classid = class.id,on 后面就是我們加的條件,我們想要 classid 這一列數(shù)據(jù)和 id 這一列的數(shù)據(jù)相等的數(shù)據(jù),這里注意一下,join 后的表列名是有重復(fù)的,所以 ON 后面的條件語句中我們要加上原來的表名。例如這里:classid = class.id, 由于 id 有兩列,這里我們是要表 class 中的 id, 所是是 class.id。
所以:執(zhí)行:stu join class on classid = class.id 后,表變?yōu)椋?/p>
小提示:當只有 join 時,其后面的 on 可以用 where 替換;
在數(shù)據(jù)庫中驗證:
mysql -u root -p # 登錄數(shù)據(jù)庫,輸入密碼
CREATE DATABASE new; # 創(chuàng)建數(shù)據(jù)庫 new
use new; # 使用這個數(shù)據(jù)庫
CREATE TABLE stu(id int primary key,name char(10),classid int)default charset = utf8mb4; # 創(chuàng)建表 stu
INSERT INTO stu (id,name,classid)VALUES(1, A ,1),(2, B ,1),(3, C ,2); # 插入數(shù)據(jù)
SELET * FROM stu;
CREATE TABLE class(id int primary key,name char(10),teacher char(10))default charset = utf8mb4; # 創(chuàng)建表 class
INSERT INTO class (id,name,teacher)VALUES(1, 實驗班 , 小紅),(2, 普通班 , 小藍 # 插入數(shù)據(jù)
SELECT * FROM class;
SELECT * FROM stu join class; # 用 join 連接兩個表
SELECT * FROM stu join class ON classid = class.id; # 用 on 來添加條件
以上是“mysql 中 join 和 on 怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!