您好,登錄后才能下訂單哦!
這篇文章主要介紹mysql數(shù)據(jù)庫(kù)如何實(shí)現(xiàn)查詢(xún)語(yǔ)句,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
查詢(xún)語(yǔ)句:1、“select * from 表名;”,可查詢(xún)表中全部數(shù)據(jù);2、“select 字段名 from 表名;”,可查詢(xún)表中指定字段的數(shù)據(jù);3、“select distinct 字段名 from 表名”,可對(duì)表中數(shù)據(jù)進(jìn)行去重查詢(xún)。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
1、普通查詢(xún)
(1)命令:select * from <表名>;//通匹
(2)命令:select <要查詢(xún)的字段> from <表名>;
2、去重查詢(xún)(distinct)
命令:select distinct <要查詢(xún)的字段> from <表名>
3、排序查詢(xún)(order by)
升序:asc
降序:desc
降序排列命令:select <要查詢(xún)的字段名> from <表名> order by <要查詢(xún)的字段名> desc
不加desc一般默認(rèn)為升序排列
4、分組查詢(xún)(group by)
命令:select <按什么分的組>, Sum(score) from <表名> group by <按什么分的組>
假設(shè)現(xiàn)在又有一個(gè)學(xué)生成績(jī)表(result)。要求查詢(xún)一個(gè)學(xué)生的總成績(jī)。我們根據(jù)學(xué)號(hào)將他們分為了不同的組。
命令:
mysql>select id, Sum(score) from result group by id;
一、等值查詢(xún)
現(xiàn)在有兩個(gè)表:
現(xiàn)在要查詢(xún)年齡小于20歲學(xué)生的不及格成績(jī)。
語(yǔ)句:
select stu.id,score from stu,result where stu.id = result.id and age < 20 and score < 60;
它的查詢(xún)?nèi)缦聢D所示:
可見(jiàn)等值查詢(xún)效率太低
二、連接查詢(xún)
1、外連接查詢(xún)
(1)左外連接查詢(xún)
假設(shè)我們依舊使用的是上面的兩個(gè)表,任然查詢(xún)年齡小于20歲學(xué)生的不及格成績(jī)
我們利用左外連接查詢(xún),先將學(xué)生表中所有年齡小于20歲的學(xué)生取出來(lái),再在成績(jī)表中將所有成績(jī)小于60的學(xué)生取出來(lái),然后再進(jìn)行配對(duì),我們會(huì)發(fā)現(xiàn)效率大大得提高,只用匹配四次就可以找到。
如下圖所示:
語(yǔ)句為:
select a.id,score from (select id,age from stu where age < 20) a (過(guò)濾左表信息) left join (select id, score from result where score < 60) b (過(guò)濾右表信息) on a.id = b.id;
左外連接就是左表過(guò)濾的結(jié)果必須全部存在。如果存在左表中過(guò)濾出來(lái)的數(shù)據(jù),右表沒(méi)有匹配上,這樣的話(huà)右表就會(huì)出現(xiàn)NULL;
(2)右外連接查詢(xún)
select a.id,score from (select id,age from stu where age < 20) a (過(guò)濾左表信息) right join (select id, score from result where score < 60) b (過(guò)濾右表信息) on a.id = b.id;
左外連接就是左表過(guò)濾的結(jié)果必須全部存在
如圖:
我們發(fā)現(xiàn)過(guò)濾出來(lái)的表進(jìn)行的匹配只有兩條滿(mǎn)足條件(紅色代表?xiàng)l件滿(mǎn)足),但最后的結(jié)果卻是:
左表不匹配的數(shù)據(jù)改為空,右表過(guò)濾出來(lái)的數(shù)據(jù)都要存在。
(3)全外連接查詢(xún)
結(jié)合了左外連接和右外連接,使得左表和右表的數(shù)據(jù)都存在。
2、內(nèi)連接查詢(xún)
只篩選匹配結(jié)果
比如過(guò)濾的結(jié)果如下:
最后的結(jié)果為:
只匹配我們需要的結(jié)果
語(yǔ)句為:
select a.id,score from (select id,age from stu where age < 20) a (過(guò)濾左表信息) inner join (select id, score from result where score < 60) b (過(guò)濾右表信息) on a.id = b.id;
以上是“mysql數(shù)據(jù)庫(kù)如何實(shí)現(xiàn)查詢(xún)語(yǔ)句”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。