1徒像、排序查詢
ORDER BY 排序字段1 排序方式1室抽,排序字段2 排序方式2;
排序方式:
ASC:升序节榜,默認(rèn)的膳殷。
eg:SELECT * FROM student ORDER BY math;
? ? ? ? SELECT * FROM student ORDER BY math ASC;
DESC:降序谷醉。
eg:SELECT * FROM student ORDER BY math DESC;
-- 按照數(shù)學(xué)成績(jī)排名致稀,如果數(shù)學(xué)成績(jī)一樣,則按照英語(yǔ)成績(jī)排名
SELECT * FROM student ORDER BY math ASC,english ASC;
注意:
如果有多個(gè)排序條件俱尼,則當(dāng)前邊的條件值一樣時(shí)抖单,才會(huì)判斷第二條件
2、聚合函數(shù):將一列數(shù)據(jù)作為一個(gè)整體遇八,進(jìn)行縱向計(jì)算矛绘。
1、count:計(jì)算個(gè)數(shù)
一般選擇非空的列:主鍵
count(*)(一列中有不為null的刃永,就算作一個(gè))(不推薦)
eg:SELECT COUNT(NAME) FROM student;
? ? ? ? SELECT COUNT(english) FROM student;
? ? ? ? SELECT COUNT(IFNULL(english货矮,0)) FROM student;
2、max:計(jì)算最大值
eg:SELECT MAX(math) FROM student;
3斯够、min:計(jì)算最小值
eg:SELECT MIN(math) FROM student;
4囚玫、sum:計(jì)算和
eg:SELECT SUM(math) FROM student;(直接可排除null值進(jìn)行計(jì)算)
5喧锦、avg:計(jì)算平均值
eg:SELECT AVG(math) FROM student;
*注意:聚合函數(shù)的計(jì)算會(huì)排除null值
解決方案:
1、選擇不包含null的列進(jìn)行計(jì)算
2抓督、ifnull函數(shù)
3裸违、分組查詢:
1、語(yǔ)法:group by 分組字段
eg:SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;
2本昏、注意:
1供汛、分組之后查詢的字段:分組字段,聚合函數(shù)
2涌穆、分組之前對(duì)條件進(jìn)行一些限定
? where和having的區(qū)別:
? 1怔昨、where在分組之前進(jìn)行限定,如果不滿足條件宿稀,則不參與分組趁舀。
? ? having在分組之后進(jìn)行判定,如果不滿足結(jié)果祝沸,總不會(huì)被查詢出來(lái)
? 2矮烹、where之后不可以跟聚合函數(shù),having可以進(jìn)行聚合函數(shù)的判定
--小于70分不參與分組
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
--小于70分不參與分組罩锐,人數(shù)要大于2個(gè)人
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex,AVG(math),COUNT(id) 人數(shù) FROM student WHERE math > 70 GROUP BY sex HAVING 人數(shù) > 2;
4奉狈、分頁(yè)查詢
1、語(yǔ)法:limit 開(kāi)始的索引涩惑,每頁(yè)查詢的條數(shù)仁期;
2、公式:開(kāi)始的索引 = (當(dāng)前頁(yè)碼-1)*每頁(yè)顯示的條數(shù)
-- 每頁(yè)顯示3條記錄
SELECT * FROM student LIMIT 0,3;-- 第一頁(yè)
SELECT * FROM student LIMIT 3,3;-- 第二頁(yè)
-- 公式竭恬,開(kāi)始的索引 = (當(dāng)前頁(yè)碼-1)*每頁(yè)顯示的條數(shù)
SELECgai'nT * FROM student LIMIT 6,3;-- 第三頁(yè)
3跛蛋、limit是一個(gè)mysql分頁(yè)操作的“方言”