Mysql查詢語(yǔ)句之連表查詢和增刪改查語(yǔ)句補(bǔ)充
點(diǎn)擊上方“IT共享之家”,進(jìn)行關(guān)注
回復(fù)“資料”可獲贈(zèng)Python學(xué)習(xí)福利
前言
Hey,大家好,我是碼農(nóng)星期八!
上次怎么大概說(shuō)了一下or,!=,in/not in between,like,limit,order by,group by。
但是還沒完,咱們接著往下說(shuō)!
查詢
我們的數(shù)據(jù)是這樣的。

發(fā)現(xiàn)class_id是一個(gè)數(shù)字,這是因?yàn)槲覀冊(cè)谠O(shè)計(jì)時(shí),將學(xué)生表和班級(jí)表分開設(shè)計(jì)的。

但是如果我們偏偏想要查詢這個(gè)人是幾班的,怎么辦?
連表查詢
方式一,where連表
語(yǔ)法
SELECT * from 表1,表2 WHERE 表1.外鍵列=表2.被外鍵列;SELECT 表1.列1,表1.列2,表2.列1,... from 表1,表2 WHERE 表1.外鍵列=表2.被外鍵列;
連表顯示所有列
SELECT * from student,class WHERE student.class_id=class.id;執(zhí)行結(jié)果

喏,這樣就知道哪個(gè)學(xué)生是哪個(gè)班的了!
連表顯示指定列
SELECT student.id,student.`name`,class.title from student,class WHERE student.class_id=class.id;執(zhí)行結(jié)果

方式二,left連表
通過(guò)where連表固然簡(jiǎn)單,但是缺點(diǎn)明顯。
因?yàn)槲覀兊?/span>where后面是要跟判斷條件的,使用where進(jìn)行連表會(huì)造成邏輯有些混亂。
在一般連表操作中,使用的也是left進(jìn)行連表。
語(yǔ)法
SELECT * from 表1 LEFT JOIN 表2 on 表1.外鍵字段=表2.被外鍵字段;SELECT 表1.列1,表1.列2,表2.列1,... from 表1 LEFT JOIN 表2 on 表1.外鍵字段=表2.被外鍵字段;
連表顯示所有列
SELECT * from student LEFT JOIN class on student.class_id=class.id;執(zhí)行結(jié)果

選擇指定列查詢
SELECT student.id,student.`name`,class.title from student LEFT JOIN class on student.class_id=class.id;執(zhí)行結(jié)果

其實(shí)這和where連表是一樣的。
方式三,inner連表
inner和left是差不多的,只不過(guò)left是正向連表,inner是反向連表。
就像學(xué)生表和課程表。
如果是通過(guò)學(xué)生表連課程表,屬于正向,用left。
如果是通過(guò)課程表連學(xué)生表,就屬于反向,用inner。
如果反向連表硬生生用left,會(huì)出現(xiàn)一些空值現(xiàn)象。
inner語(yǔ)法同left,只不過(guò)是表的前后順序不一樣。
其他操作
上述所有的操作,都屬于查詢操作,基本上入門是可以的,下面咱們來(lái)看一下剩下的增,刪,改操作。
增(insert)
單條插入
語(yǔ)法
INSERT INTO 表(列名1,列名2,...) values(值1,值2,...);添加一條學(xué)生信息
INSERT into student(name,age,gender,class_id) VALUES("吳彥祖",22,"男",1);執(zhí)行結(jié)果

表內(nèi)容

多條插入
語(yǔ)法
INSERT INTO 表(列名1,列名2,...) values(值1,值2,...),(值1,值2,...);批量添加學(xué)生信息
INSERT INTO student (NAME, age, gender, class_id)VALUES("范冰冰", 18, "女", 2),("成龍", 24, "男", 3);
執(zhí)行結(jié)果

表內(nèi)容

改(update)
語(yǔ)法
UPDATE <表> set 列 = 值 where <條件>;將李四的年齡修改成88歲
UPDATE student set age = 88 where name = "張三"執(zhí)行結(jié)果

刪除(delete)
語(yǔ)法
delete from <表名>delete from <表名> where <條件>
刪除張三
DELETE from student where name="張三"執(zhí)行結(jié)果

總結(jié)
這章有點(diǎn)像收尾部分,補(bǔ)充了連表查詢,后續(xù)又補(bǔ)充了Mysql的增刪改查。
連表查詢要區(qū)分一下left和inner的區(qū)別,一個(gè)是正向連,一個(gè)是反向連。
插入數(shù)據(jù)可以插入單條數(shù)據(jù)和多條數(shù)據(jù),多跟參數(shù)即可。
如果在操作過(guò)程中有任何問題,記得下面留言,我們看到會(huì)第一時(shí)間解決問題。
越努力,越幸運(yùn)。
我是碼農(nóng)星期八,如果覺得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈。
感謝你的觀看。
看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多的人
IT共享之家
入群請(qǐng)?jiān)谖⑿藕笈_(tái)回復(fù)【入群】
------------------- End -------------------
往期精彩文章推薦:
