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