聚合函式及分組與過濾(GROUP BY … HAVING)
MySQL參考手冊官網:
https://dev.mysql.com/doc/refman/5.7/en/sql-function-reference.html
常用函式
-
數學運算
--數學運算 SELECT ABS(-2) -- 絕對值 SELECT CEILING(5.2) -- 向上取整數 SELECT FLOOR(5.2) -- 向下取整數 SELECT RAND() -- 返回一個 0~1之間的隨機數 -- 字串函式 SELECT CHAR_LENGTH('MySQL') -- 字串長度 SELECT CONCAT('My','S','QL') -- 拼接字串 SELECT INSERT('MySQL',1,3,'WWW') -- 查詢,從一個位置開始替換某個長度(1,3表示從第一個字元開始,替換3個字元) SELECT INSTR('MySQL','S') -- 返回第一次出現的字串的索引 SELECT LOWER('MySQL') -- 全轉為小寫字母 SELECT UPPER('MySQL') -- 全轉為大寫字母 SELECT REPLACE('MySQL','My','www') -- 替換出現的指定字串 SELECT SUBSTR('MySQL',2,3) -- 返回指定的字串 代表從一個位置開始,擷取的長度(2,3代表從第2個字元開始,擷取3個字元) SELECT REVERSE('MySQL') -- 反轉 -- 時間和日期函式 SELECT CURRENT_DATE() -- 獲取當前時間 SELECT CURDATE() -- 獲取當前時間 SELECT NOW() -- 獲取當前時間 (時分秒) SELECT LOCALTIME() -- 獲取當前時間 (時分秒) SELECT SYSDATE() -- 獲取當前時間 (時分秒) -- 年月日時分秒 SELECT YEAR(NOW()) SELECT MONTH(NOW()) SELECT DAY(NOW()) SELECT HOUR(NOW()) SELECT MINUTE(NOW()) SELECT SECOND(NOW()) -- 系統 SELECT SYSTEM_USER() -- 使用者 SELECT USER() -- 使用者 (簡寫)
-
聚合函式(常用)
函式名 描述 COUNT() 計數 SUM() 求和 AVG() 平均值 MAX() 最大值 MIN() 最小值
-- 聚合函式
SELECT COUNT(BornDate) FROM student -- COUNT(欄位),此格式會忽略所有的null值
SELECT COUNT(*) FROM student; -- 不會忽略null值
SELECT COUNT(1) FROM student -- 不會忽略null值
SELECT SUM(studentresult) AS 總和 FROM result
SELECT AVG(studentresult) AS 平均分 FROM result
SELECT AVG(studentresult) AS 最高分 FROM result
SELECT AVG(studentresult) AS 最低分 FROM result
分組與過濾
GROUP BY … HAVING
-- 查詢不同課程的平均分,最高分,最低分,平均分大於80
SELECT `subjectname`,AVG(studentresult) AS 平均分,MIN(studentresult) AS 最低分,MAX(studentresult) AS 最高分
FROM result r
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
GROUP BY r.subjectno -- 通過哪個欄位來分組
HAVING 平均分 > 80
MD5加密
-- 未加密
INSERT INTO testmd5 VALUES (1,'zhang','123456'),(2,'liu','123456'),(3,'ma','123456')
-- 加密
UPDATE testmd5 SET pwd = MD5(pwd) WHERE id = 1 -- 只為id為1的加密
UPDATE testmd5 SET pwd = MD5(pwd) -- 全部加密
-- 插入時加入
INSERT INTO testmd5 VALUES (5,'zhang',MD5('123456'))
-- 將使用者傳遞進來的密碼,進行md5加密,然後比對加密後的值
SELECT * FROM testmd5 WHERE `name` = 'zhang' AND pwd = MD5('123456')
相關文章
- Mysql系列第九講 分組查詢詳解(group by & having)MySql
- 過濾函式函式
- MySQL全面瓦解10:分組查詢和聚合函式MySql函式
- MySQL - 分組連線欄位函式GROUP_CONCAT的使用MySql函式
- python函式每日一講 - filter函式過濾序列Python函式Filter
- Elasticsearch 查詢結果分組統計,聚合檢索(group by stats)Elasticsearch
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- 037:函式物件的過濾器函式物件過濾器
- 區間統計 聚合函式組合器函式
- SQL-函式 - 聚合函式SQL函式
- group by分組查詢
- group by,having查詢 ”每**“的查詢
- Django:聚合函式Django函式
- Stream聚合函式函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- DAX 第三篇:過濾器函式過濾器函式
- Django(18)聚合函式Django函式
- SQL-分組聚合 - 單欄位分組SQL
- 6、Oracle中的分組函式Oracle函式
- MySQL的GROUP_CONCAT函式輕鬆解決多表聯查的聚合問題MySql函式
- Oracle OCP(04):聚合函式Oracle函式
- SQL函式Group_concat用法SQL函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- python 系統函式呼叫sed分組Python函式
- 【SQL】晨光咖啡館,過濾聚合的微妙碰撞SQL
- sql中的left切割 與 group by後的兩次分組SQL
- Pandas 分組聚合操作詳解
- Python利用partial偏函式生成不同的聚合函式Python函式
- 4、過濾器的使用及自定義過濾器過濾器
- 資料庫之DQL排序&分組&函式資料庫排序函式
- openGauss 函式及儲存過程支援函式儲存過程
- sql case when, Exist ,group by ,聚合SQL
- #PowerBi 10分鐘學會,以X為結尾的聚合函式函式
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- ES 24 - 如何通過Elasticsearch進行聚合檢索 (分組統計)Elasticsearch
- Android開發 - 掌握ConstraintLayout(九)分組(Group)AndroidAI
- 【複變函式與積分變換】02. 解析函式函式
- mixins,自定義指令,render函式(待研究填坑),過濾器函式過濾器