1翅阵、DQL:查詢語句:
- 1.排序查詢
- 2.聚合函數(shù)
- 3.分組查詢
- 4.分頁查詢
2惠勒、約束
3、多表之間的關(guān)系
4吝沫、范式
5呻澜、數(shù)據(jù)庫的備份和還原
DQL:查詢語句:
- 1.排序查詢
- 語法:
order by
子句
order by 排序字段1 排序方式1, 排序字段2,排序方式2...
- 排序方式:
- ASC:升序递礼,默認(rèn)的。
- DESC:降序
- 語法:
-- 在student表中按照數(shù)學(xué)成績(math)升序排名
SELECT * FROM student ORDER BY math;
SELECT * FROM student ORDER BY math ASC;
-- 在student表中按照數(shù)學(xué)成績(math)降序排名
SELECT * FROM student ORDER BY math DESC;
-- 在student表中按照數(shù)據(jù)成績排名羹幸,如果數(shù)學(xué)(math)成績一樣脊髓,則按照英語(english)成績排名
SELECT * FROM student ORDER BY math ASC, english ASC;
- 注意:
如果有多個(gè)排序條件,則當(dāng)前邊的田間值一樣時(shí)栅受,才會(huì)判斷第二條件将硝。
- 2.聚合函數(shù):將一列數(shù)據(jù)作為一個(gè)整體,進(jìn)行縱向的計(jì)算
-
count
:計(jì)算個(gè)數(shù)
- 一般選擇非空的列:主鍵
- count(*)
-
SELECT COUNT(NAME) FROM student;
SELECT COUNT(english) FROM student;
SELECT COUNT(IFNULL(english,0)english) FROM student;
-
max
:計(jì)算最大值
SELECT MAX(math) FROM student;
-
min
:計(jì)算最小值
SELECT MIN(math) FROM student;
-
sum
:求和
SELECT SUM(math) FROM student;
-
avg
:計(jì)算平均值
SELECT AVG(math) FROM student;
注意:聚合函數(shù)的計(jì)算窘疮,會(huì)排除null值袋哼。
解決方法:
1、選擇不包含非空的列計(jì)算
2闸衫、IFNULL函數(shù)
- 3.分組查詢
- 語法:group by 分組字段;
-- 按照性別分組涛贯,分別查詢男、女同學(xué)的數(shù)學(xué)平均分
SELECT gender,AVG(math) FROM student GROUP BY gender;
-- 按照性別分組蔚出,分別查詢男弟翘、女同學(xué)的數(shù)學(xué)平均分,分別的人數(shù)
SELECT gender,AVG(math),COUNT(id) FROM student GROUP BY gender;
-- 按照性別分組,分別查詢男骄酗、女同學(xué)的數(shù)學(xué)平均分,分別的人數(shù)(要求:分?jǐn)?shù)低于70分的人稀余,不參與分組)
SELECT gender,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY gender;
-- 按照性別分組,分別查詢男趋翻、女同學(xué)的數(shù)學(xué)平均分,分別的人數(shù)(要求:分?jǐn)?shù)低于70分的人睛琳,不參與分組) 分組之后,人數(shù)要大于2個(gè)人
SELECT gender,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY gender HAVING COUNT(id) >2;
-- 一般在聚合函數(shù)后面取一個(gè)別名方便查詢
SELECT gender,AVG(math),COUNT(id) pnum FROM student WHERE math >70 GROUP BY gender HAVING pnum > 2;
- 注意:
- 分組之后查詢的字段:分組字段踏烙、集合函數(shù)
- where 和 having 的區(qū)別(面試呈ζ考)?
1.where在分組之前進(jìn)行限定讨惩,如果不滿足條件辟癌,則不參與分組。having在分組之后進(jìn)行限定荐捻,如果不滿足結(jié)果黍少,則不會(huì)被查詢出來。- where 后不可以跟聚合函數(shù)处面,having可以進(jìn)行集合函數(shù)的判斷厂置。
- 4.分頁查詢
1.語法:limit
開始的索引,每頁查詢的條數(shù);
2.公式:開始的索引 = (當(dāng)前的頁面 - 1)* 每條顯示的條數(shù)
-- 分頁查詢
-- 每頁顯示3條記錄
SELECT * FROM student LIMIT 0,3; -- 第一頁
SELECT * FROM student LIMIT 3,3; -- 第二頁
-- 公式:開始的索引 = (當(dāng)前的頁面 - 1)* 每條顯示的條數(shù)
SELECT * FROM student LIMIT i+n,n
SELECT * FROM student LIMIT 6,3;
3.分頁操作的,limit
是一個(gè)“方言”魂角,只能在MySQL使用农渊。