1.算术函数
函数 | 含义 | 样例 |
---|---|---|
ABS | 取绝对值 | SELECT ABS(-1); # 结果为 1 |
MOD | 取余 | SELECT MOD(22,5); # 22%5 结果为 2 |
ROUND | 四舍五入时指定小数点位数 | SELECT ROUND(15.43,1); # 结果为 15.4 |
2.字符串函数
函数 | 含义 | 样例 |
---|---|---|
CONCAT | 将多个字符串连接起来 | SELECT CONCAT("%","pibigstar"); # 结果为 %pibigstar |
LENGTH | 计算字段的长度,一个汉字-三个字符,字母和数字一个字符 | SELECT LENGTH("你好"); # 结果为 6 |
CHAR_LENGTH | 所有都算做一个字符 | SELECT CHAR_LENGTH("你好"); # 结果为 2 |
LOWER | 全部转为小写 | SELECT LOWER("AB"); # 结果为 ab |
UPPER | 全部转为大写 | SELECT UPPER("ab") # 结果为 AB |
REPLACE | 替换字符 | SELECT REPLACE("abc","a", "f"); # 结果为 fbc |
SUBSTRING | 截取字符串(字符串, 开始截取位置, 截取长度) | SELECT SUBSTRING("abc", 1, 2); # 结果为 ab |
3.日期函数
函数 | 作用 | 样例 |
---|---|---|
DATEDIFF | 比较两个时间 | # 查询当天的数据 SELECT * FROM user WHERE DATEDIFF(create_at,now())=0 # 查询昨天的数据 # 查询这个月的数据 |
CURRENT_DATE | 系统当前日期 | SELECT CURRENT_DATE(); # 2019-06-29 |
CURRENT_TIME | 系统当前时间 | SELECT CURRENT_TIME(); # 21:44:33 |
CURRENT_TIMESTAMP | 系统当前时间(日期+时间) | SELECT CURRENT_TIMESTAMP(); # 2019-06-29 21:44:33 |
ECTRACT | 抽取具体的年、月、日 | SELECT EXTRACT(YEAR FROM '2019-06-29'); # 2019 |
DATE | 返回时间的日期部分 | SELECT DATE('2019-06-29 21:44:33'); # 2019-06-29 |
YEAR | 返回时间的年份部分 | |
MONTH | 返回时间的月份部分 | |
DAY | 返回时间的天数部分 | SELECT DAY('2019-06-29 21:44:33'); # 29 |
HOUR | 返回时间的小时部分 | |
MINUTE | 返回时间的分钟部分 | |
SECOND | 返回时间的秒部分 |
4.转换函数
函数 | 作用 | 样例 |
---|---|---|
CAST | 强制数据类型转换 | SELECT CAST(65.243 AS DECIMAL(8,2)); # 65.24 |
COALESCE | 返回第一个非空数值 | SELECT COALESCE(null,null,2,3); # 2 |
5.聚合函数
函数 | 作用 | 样例 |
---|---|---|
SUM | 求和 | SELECT SUM(age) FROM user; |
AVG | 求平均值 | SELECT AVG(age) FROM user; |
MAX | 找出最大值 | SELECT MAX(age) FROM user; |
MIN | 找出最小值 | SELECT MIN(age) FROM user; |
COUNT | 计数 | SELECT COUNT(*) FROM user; # 计录全部行数,包括null SELECT COUNT(age) FROM user; # 如果age为null,将过滤 SELECT COUNT(*) FROM user GROUP BY age |
PS:关键字顺序不能颠倒,它们的顺序为:
SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT...