?前言:
? ? ? ? ?以下是MySQL最基本的增刪改查語句,很多IT工作者都必須要會的命令,也 是IT行業(yè)面試最??嫉闹R點,由于是入門級基礎命令,所有所有操作都建立在單表 上,未涉及多表操作。
4.3 高級查詢
4.3.1 聚合函數(shù)
(1)COUNT()函數(shù):統(tǒng)計記錄的條數(shù)
語法:SELECT COUNT(*) FROM 表名
舉例:查詢student2表中一共有多少條記錄
命令:SELECT COUNT(*) FROM student2;
結果:
(2)SUM()函數(shù):求出表中某個字段所有值的總和
語法:SELECT SUM(字段名) FROM 表名;
舉例:求出student2表中grade字段的總和
命令:SELECT SUM(grade) FROM student2?
結果:
(3)AVG()函數(shù):求出表中某個字段所有值的平均值
語法:SELECT AVG(字段名) FROM 表名;
舉例:求出student2表中grade字段的平均值
命令:SELECT AVG(grade) FROM student2?
結果:
(4)MAX()函數(shù):求出表中某個字段所有值的最大值
語法:SELECT MAX(字段名) FROM 表名;
舉例:求出student2表中所有人grade字段的最大值
命令:SELECT MAX(grade) FROM student2?
結果:
(5)MIN()函數(shù):求出表中某個字段所有值的最小值
語法:SELECT MIN(字段名) FROM 表名;
舉例:求出student2表中所有人grade字段的最小值
命令:SELECT MIN(grade) FROM student2?
結果:
.
4.3.2 對查詢結果進行排序
語法:SELECT 字段名1,字段名2,…
FROM 表名
ORDER BY 字段名1 [ ASC | DESC ],字段名2 [ ASC | DESC ]…
? ? ? ?在該語法中指定的字段名是對查詢結果進行排序的依據(jù),ASC表示升序排列,DESC 表示降序排 列,默認情況是升序排列。
舉例1:查出student2表中的所有記錄,并按照grade字段進行升序排序
命令:SELECT * FROM student2
ORDER BY grade?
結果:
舉例2:查出student2表中的所有記錄,并按照grade字段進行降序排序
命令:SELECT * FROM student2
ORDER BY grade DESC?
結果:
4.3.3 分組查詢
? ? ? ?在對表中數(shù)據(jù)進行統(tǒng)計的時候,可以使用GROUP BY 按某個字段或者多個字段進行分組,字段中 值相同的為一組,如男生分為一組,女生分為一組。
語法:SELECT 字段名1,字段名2,…
FROM 表名
GROUP BY 字段名1,字段名2,… [ HAVING 條件表達式 ]?
(1)單獨使用 GROUP BY 進行分組
單獨使用GROUP BY 關鍵字,查詢的是每個分組中的一條記錄
舉例:查詢student2表中的數(shù)據(jù),按照gender字段進行分組。
命令:SELECT * FROM student2 GROUP BY gender?
結果:
注意:
? ? ? ? 若在此2例中鍵入命令之后出現(xiàn)“#1055”錯誤,無法完成分組查詢,是由于MySQL版本升 級到了5.7,可自行百度“MySQL 1055錯誤”參考解決辦法。
(2) GROUP BY 和聚合函數(shù)一起使用
? ? ? ? GROUP BY 和聚合函數(shù)一起使用,可以統(tǒng)計出某個或者某些字段在一個分組中的最大值、最小 值、平均值等。
舉例:將student2表按照gender字段進行分組查詢,計算出每組共有多少個人。
命令:SELECT COUNT(*) ,gender FROM student2 GROUP BY gender?
結果:
(3) GROUP BY 和 HAVING 關鍵字一起使用
? ? ? ? ?HAVING關鍵字和WHERE關鍵字的作用相同,區(qū)別在于HAVING 關鍵字可以跟聚合函數(shù),而 WHERE 關鍵字不能。通常HAVING 關鍵字都和GROUP BY一起使用,用于對分組后的結果進行 過濾。
舉例:將student2表按照gender字段進行分組查詢,查詢出grade字段值之和小于300的分組
命令:SELECT sum(grade),gender FROM student2 GROUP BY gender HAVING SUM(grade) < 300?
結果:
4.3.4 使用 LIMIT 限制查詢結果的數(shù)量
語法:SELECT 字段名2,字段名2,…
FROM 表名
LIMIT [ OFFSET ,] 記錄數(shù)
? ? ? 在此語法中,LIMIT 后面可以跟兩個參數(shù),第一個參數(shù)“ OFFSET ”表示偏移量,如果偏移量為 0,則從查詢結果的第一條記錄開始,偏移量為1則從查詢結果中的第二條記錄開始,以此類推。 OFFSET為可選值,默認值為0,第二個參數(shù)“記錄數(shù)”表示指定返回查詢記錄的條數(shù)。
舉例1:查詢student2表中的前四條記錄。
命令:SELECT * FROM student LIMIT 4?
結果:
舉例2:查詢student2表中grade字段從第五位到第八位的人(從高到低)
命令:SELECT * FROM student2 ORDER BY grade DESC LIMIT 4,4?
結果:
4.3.5 函數(shù)(列表)
見:
? ? ? MySOL之常用函數(shù)
4.4 為表和字段取別名
4.4.1 為表取別名
? ? ? ? ?在進行查詢操作時,如果表名很長使用起來不方便,可以為表取一個別名來代替 表的名稱。
語法:SELECT * FROM 表名 [ AS ] 別名;
舉例:為student2表起一個別名s,并查詢student2表中gender字段值為“女”的記錄
命令:SELECT * FROM student2 AS s WHERE s.gender='女';結果:
?結果:
4.4.2?為字段取別名
語法:SELECT 字段名 [ AS ] 別名 [ ,字段名 [AS] 別名,…] FROM 表名 ;
舉例:查詢student2表中的所有記錄的name和gender字段值,并未這兩個字段起別名stu_name和stu_gender
命令:SELECT name AS stu_name,gender AS stu_gender FROM student2?
結果:文章來源:http://www.zghlxwxcb.cn/news/detail-858323.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-858323.html
----------------------------------------完結----------------------------------------
到了這里,關于MYSQL之增刪改查(下)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!