字符函数
-
concat:连接字符串
- SELECT CONCAT(name,age) from employeement
-
length:求字符串的长度
- SELECT LENGTH("你好hi"); 返回8,中文在utf8里占3字节
- upper、lower:转字符串为大小写
-
substr:截取字符串,有多个重载方法
- SELECT SUBSTR(name,2,3) from employeement
-
instr:返回字串第一次出现的索引
- SELECT instr("你好hello","h")返回3
-
trim:去空,还可以指定消去的字符串
- SELECT trim("a" from "aaaa你好aa")返回你好
-
lpad、rpad:实现指定字符长度的填充,如果长度超过了就从后截取,lpad左填充,rpad右
- SELECT lpad("abc",6,"*") 返回***abc,共6位长
-
replace:替换
- SELECT replace("hello mysql","my","their") 返回hello theirsql
数学函数
-
round:四舍五入,可以指定保留几位小数
- SELECT round(12.2321,2) 返回12.23
- ceil:向上取整,返回的值肯定大于等于参数
- floor:向下取整
-
truncate:截断保留几位小数,不四舍五入
- SELECT TRUNCATE(13.225,2) 返回13.22
- mod:取余
日期函数
- now:返回当前系统日期时间
- curdate:返回系统如期不包括时间
- curtime:返回当前时间
-
year、month、day、date、time、second……
- SELECT year(now()) 返回2022,SELECT date("2001/4/2 12:22:22")返回2001-04-02
-
str_to_date:将字符串按格式解析转为日期格式
- SELECT STR_TO_DATE("21-04-2001","%d-%m-%Y")返回2001-04-21
-
date_format:将日期格式化为字符串
- SELECT date_format("2001/04/21","%Y年%m月%d日")返回2001年04月21日
- datediff:显示两个日期的差值,天数
- SELECT datediff(now(),"2001-04-21")返回7589
其它函数
- version:当前版本
- database:当前数据库
- user:当前版本
- password:加密
- MD5:md5加密
流程控制函数
-
if:第一个参数是表达式,第二个参数是条件为true执行的,第三个fasle执行的
- SELECT if(6<3,"ok","no ok")返回no ok
- case:
①类似switch case的用法
case 要判断的字段或表达式
when 常量1 then 要执行的语句或返回值
when 常量2 then 要执行的语句或返回值
else要执行的语句或返回值
end
例子:
use employee;
SELECT name,
case SUBSTR(name,1,1)
when "李" then "李世民"
when "王" then "王老五"
else "无名氏"
end
as 昵称
from employeement
②类似if else if……else的用法
case
when 条件1 then 要执行的语句或返回值
when 条件1 then 要执行的语句或返回值
else 要执行的语句或返回值
end
分组函数
- sum:求和,忽略null值
- avg:平均值,忽略null值
- max、min:最大值最小值
- count:计算非空个数
都可以配合distinct,如SELECT sum(distinct age),sum(age) from employeement;两个返回值不同