您好,登錄后才能下訂單哦!
DQL查詢語句又叫數(shù)據(jù)庫查詢語句,這是Java學(xué)習(xí)者在學(xué)習(xí)MySQL時(shí),必須了解和掌握的知識點(diǎn)之一。眾所周知,DQL查詢語句有四種查詢方式:排序查詢、聚合函數(shù)、分組查詢和分頁查詢。下面讓我們一一仔細(xì)梳理這四種查詢方式,有需要學(xué)習(xí)的小伙伴趕緊來看看MySQL學(xué)習(xí)總結(jié)之DQL查詢語句的知識點(diǎn)吧!
1、排序查詢
(1)語法:order by 子句
order by 排序字段1 排序方式1 , 排序字段2 排序方式2...
(2)排序方式:
ASC:升序,默認(rèn)的。
DESC:降序。
(3)注意:
如果有多個(gè)排序條件,則當(dāng)前邊的條件值一樣時(shí),才會判斷第二條件。
2、聚合函數(shù):將一列數(shù)據(jù)作為一個(gè)整體,進(jìn)行縱向的計(jì)算。
(1)count:計(jì)算個(gè)數(shù)
一般選擇非空的列:主鍵
count(*)
(2)max:計(jì)算最大值
(3)min:計(jì)算最小值
(4)sum:計(jì)算和
(5)avg:計(jì)算平均值
注意:聚合函數(shù)的計(jì)算,排除null值。
解決方案:選擇不包含非空的列進(jìn)行計(jì)算;IFNULL函數(shù)。
3、分組查詢:
(1)語法:group by 分組字段。
(2)注意:分組之后查詢的字段:分組字段、聚合函數(shù)
(3)where 和 having 的區(qū)別?
where 在分組之前進(jìn)行限定,如果不滿足條件,則不參與分組。having在分組之后進(jìn)行限定,如果不滿足結(jié)果,則不會被查詢出來;where 后不可以跟聚合函數(shù),having可以進(jìn)行聚合函數(shù)的判斷。
-- 按照性別分組。分別查詢男、女同學(xué)的平均分
SELECT sex , AVG(math) FROM student GROUP BY sex;
-- 按照性別分組。分別查詢男、女同學(xué)的平均分,人數(shù)
SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
-- 按照性別分組。分別查詢男、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于70分的人,不參與分組
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
-- 按照性別分組。分別查詢男、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于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. 分頁查詢
(1)語法:limit 開始的索引,每頁查詢的條數(shù);
(2)公式:開始的索引 = (當(dāng)前的頁碼 - 1) * 每頁顯示的條數(shù)
-- 每頁顯示3條記錄
SELECT * FROM student LIMIT 0,3; -- 第1頁
SELECT * FROM student LIMIT 3,3; -- 第2頁
SELECT * FROM student LIMIT 6,3; -- 第3頁
(3)limit 是一個(gè)MySQL"方言"
關(guān)于MySQL學(xué)習(xí)總結(jié)之DQL查詢語句的內(nèi)容就講到這里了,相信大家對于四種查詢方式已經(jīng)了解的差不多了。要想學(xué)習(xí)了解更多MySQL相關(guān)的知識點(diǎn),可以上億速云進(jìn)行Java課程的試聽體驗(yàn),相信一定不會讓大家失望。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。