更新時間:2021-01-27 17:47:37 來源:動力節點 瀏覽1099次
我們都知道SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML,數據定義語言DDL,數據控制語言DCL。其中DQL也稱為“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其它類型的SQL語句一起使用,共同構成了DQL查詢語言的核心部分。本文我們就來聊一聊DQL查詢語句。
下面我們就通過4個應用實例,來深入分析DQL查詢語句。
1.排序
select 字段 from 表名 where 字段=值 order by 字段 asc|desc;
asc 升序
desc 降序
組合排序
select * from 表名 order by age desc ,math desc;
2.聚合函數
max(列名):求這一列的最大值
min(列名):求這一列的最小值
avg(列名):求這一列的平均值
count(列名):統計這一列有多少條記錄
sum(列名):對這一列求總和
-- 查詢學生總數
select count(id) as 總人數 from student;
select count(*) as 總人數 from student;
-- 查詢年齡大于 20 的總數
select count(*) from student where age>20;
-- 查詢數學成績總分
select sum(math) 總分 from student;
-- 查詢數學成績平均分
select avg(math) 平均分 from student;
-- 查詢數學成績最高分
select max(math) 最高分 from student;
-- 查詢數學成績最低分
select min(math) 最低分 from student;
3.limit語句
LIMIT 是限制的意思,所以 LIMIT 的作用就是限制查詢記錄的條數。
LIMIT offset,length;
offset:起始行數,從 0 開始計數,如果省略,默認就是 0
length: 返回的行數
SELECT *|字段列表 [as 別名] FROM 表名 [WHERE 子句] [GROUP BY 子句][HAVING 子句][ORDER BY 子句][LIMIT 子句];
-- 查詢學生表中數據,從第 3 條開始顯示,顯示 6 條。
select * from student3 limit 2,6;
-- 如果第一個參數是 0 可以省略寫:
select * from student3 limit 5;
4.分組
分組查詢是指使用 GROUP BY 語句對查詢信息進行分組,相同數據作為一組
SELECT 字段 1,字段 2... FROM 表名 GROUP BY 分組字段 [HAVING 條件];
GROUP BY 怎么分組的?
將分組字段結果中相同內容作為一組,如按性別將學生分成 2 組。
-- 按性別進行分組,求男生和女生數學的平均分
select sex, avg(math) from student3 group by sex;
having 與 where 的區別
子名 作用
where 子句 1) 對查詢結果進行分組前,將不符合 where 條件的行去掉,即在分組之前過濾數據,即先過濾
再分組。
2) where 后面不可以使用聚合函數
having 子句 1) having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,即先分組再過濾。
2) having 后面可以使用聚合函數
事實上,DQL查詢語句的用法遠不止于此,我們除了要掌握DQL的基本結構是由SELECT子句,FROM子句,WHERE子句組成的查詢塊,還要學會DQL語句的標準語法,才能真正意義上掌握DQL查詢語句。在本站的MySQL教程中,對其他類別的SQL查詢語句也有詳細的介紹,感興趣的小伙伴可以前去觀看學習,拓展新的知識領域。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習