訂閱
糾錯(cuò)
加入自媒體

技術(shù)文章:Mysql查詢語(yǔ)句之連表查詢和增刪改查語(yǔ)句補(bǔ)充

陳侯立身何坦蕩,虬須虎眉仍大顙。

前言

Hey,大家好,我是碼農(nóng)星期八!

上次怎么大概說(shuō)了一下or,!=,in/not in between,like,limit,order by,group by。

但是還沒(méi)完,咱們接著往下說(shuō)!

查詢

我們的數(shù)據(jù)是這樣的。

發(fā)現(xiàn)class_id是一個(gè)數(shù)字,這是因?yàn)槲覀冊(cè)谠O(shè)計(jì)時(shí),將學(xué)生表班級(jí)表分開(kāi)設(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)槲覀兊膚here后面是要跟判斷條件的,使用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ò)程中有任何問(wèn)題,記得下面留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。

越努力,越幸運(yùn)。

我是碼農(nóng)星期八,如果覺(jué)得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈。

感謝你的觀看。

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)