合计/统计函数
-count
返回行的总数
count(*):返回满足条件的记录的行数
count(列):统计某列满足条件的记录有多少个,但是会排除为null的情况
sum
返回满足where条件的行的和
格式:
select sum(列名) [,sum(列名)...] from 表名
[where 条件]
注意:
1.sum 仅对数值起作用,没有意义
2.对多列求和“,”号不能少
avg
返回满足where条件的列的平均值
格式:
select avg(列名) [,avg(列名)...] from 表名
[where 条件]
max/min
max/min函数返回满足where条件的列的最大/最小值
格式:
select max(列名) from 表名
[where 条件]
字符串函数
CHARSET(str) | 返回字串字符集 |
CONCAT(string2 [,...]) | 连接字串 |
INSTR(string, substring) | 返回substring在string中出现的位置,没有返回0 |
UCASE(string) | 转换成大写 |
LCASE(string) | 抓换成小写 |
LEFT(string length) | 从string中的左边起取length个字符 |
LENGTH(string) | string长度(按照字符) |
REPLACE(str, search_str, replace_str) | 在str中用replace_str替换search_str |
STRCMP(string1, string2) | 比较两字串大小 |
SUBSTRING(str, position [, length]) | 从str的position开始【从1开始计算】,取length个字符 |
LTRIM(string) RTRIM (string) TRIM | 去除前端空格 去除后端空格 去除前端和后端空格 |
数学函数
ABS(num) | 求绝对值 |
BIN(num) | 十进制转二进制 |
CEILING(num) | 向上取整,得到比num大的最小整数 |
CONV(num, from_base, to_base) | 进制转换,从from_base进制z转换为to_base进制 |
FLOOR(num) | 向下取整,得到比num小的最大整数 |
FORMAT(num, decimal_places) | 保留小数位数,保留decimal_places位小数,四舍五入 |
HEX(DecimalNumber) | 转十六进制 |
LEAST(num, num2 [,...]) | 求最小值 |
MOD(numerator, denominator) | 求余 |
RAND([seed]) | 返回随机数,范围 [0,1.0]。 rand()每次返回不同的随机数 rand(seed)返回随机数,如果seed不变,该随机数也不变 |
时间日期函数
CURRENT_DATE() | 当前日期 |
CURRENT_TIME() | 当前时间 |
CURRENT_TIMESTAMP | 当前时间戳 |
DATE(datetime) | 返回datetime的日期部分 |
DATE_ADD(date, INTERVAL d_value d_type) | 在date中加上日期或时间 |
DATE_SUB (date2, INTERVAL d_value d_type) | 在date中减去一个时间或日期 |
DATEDIFF(date1, date2) | 两个时间差(结果是天) |
TIMEDIFF(date1, date2) | 两个时间差(多少小时多少分钟多少秒) |
NOW() | 当前时间 |
YEAR | MONTH | DAY(datetime) | 年月日 |
UNIX_TIMESTAMP | 返回的是1970-1-1到现在的秒数 |
FROM_UNIXTIME() | 可以把一个unix_timestamp秒数转成指定格式的日期 |
注意:
1.DATE_ADD()中的interval 后面可以是year ,month,day,hour,minute,second等
2.DATE_SUB()中的interval后面可以是year ,month,day,hour,minute,second等
3.DATEDIFF(date1, date2)得到的是天数,而且是date1 - date2 的天数,因此可以取负数
4.这四个date函数的日期类型可以是date,datetime,或者timestamp
5.FROM_UNIXTIME(int , '%Y-%m-%d %H:%i:%s')转成年月日时分秒
USER() | 查询用户,可以查看登录到mysql的有哪些用户,以及登录的IP |
DATABASE() | 查询当前使用数据库名称 |
MD5(str) | 为字符串算出一个MD5 32的字符串,(用户密码)加密 |
PASSWORD(str) | 从原文密码str计算并返回密码字符串,通常用于对Mysql数据库的用户密码加密;从mysql 8.0版本取消了 |
流程控制函数
IF (expr1,expr2,expr3) | 如果express为true,则返回expr2,否则返回expr3 |
IFNULL(expr1, expr2) | 如果expr1不为空null,则返回expr1,否则返回expr2 |
SELECT CASE WHEN expe1 THEN expr2 WHEN expe3 THEN expr4 ELSE expr5 END;(类似多重分支) | 如果expr1为true,则返回expr2,如果expr3为true,则返回expr4,否则返回expr5 |