查詢語句:1、“select * from 表名;”,可查詢表中全部資料;2、“select 欄位名稱from 表名;”,可查詢表中指定欄位的資料;3、 “select distinct 欄位名稱from 表名”,可對錶中資料進行去重查詢。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
1、普通查詢
(1)指令:select * from ;/ /通匹
(2)指令:select from ;
2 、去重查詢(distinct)
指令:select <strong>distinct</strong> 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影片教學】
以上是mysql資料庫的查詢語句是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!