MySQL--函数
目录
函数
字符串函数
数值函数
日期函数
流程函数
函数
函数的定义:函数是一段可被另一段程序直接调用的程序或代码 。
字符串函数
函数 | 功能 |
---|---|
concat(s1,s2,...sn) | 字符串拼接,将 s1,s2,… sn 拼接成一个字符串 |
lower(str) | 将字符串 str 全部转为小写 |
upper(str) | 将字符串 str 全部转为大写 |
lpad(str,n,pad) | 左填充,用字符串 pad 对 str 的左边进行填充,达到 n 个字符串长度 |
rpad(str,n,pad) | 右填充,用字符串 pad 对 str 的右边进行填充,达到 n 个字符串长度 |
trim(str) | 去掉字符串头部和尾部的空格 |
substring(str,start,len) | 返回从字符串 str 从 start 位置起的 len 个长度的字符串 |
update emp set workno = lpad(workno,5,'0') ;
数值函数
函数 | 功能 |
---|---|
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
mod(x,y) | 返回 x/y 的模 |
rand() | 返回 0~1 内的随机数 |
round(x,y) | 求参数 x 的四舍五入的值,保留 y 位小数 |
-- 例:通过数据库的函数,生成一个六位数的随机验证码
select lpad(round(rand()*1000000,0),6,'0');
日期函数
函数 | 功能 |
---|---|
curdate() | 返回当前日期 |
curtime() | 返回当前时间 |
now() | 返回当前日期和时间 |
year(date) | 获取指定 date 的年份 |
month(date) | 获取指定 date 的月份 |
day(date) | 获取指定 date 的日期 |
date_add(date, interval expr type) | 返回一个日期 / 时间值加上一个时间间隔 expr 后的时间值 |
datediff(date1, date2) | 返回起始时间 date1 和结束时间 date2 之间的天数 |
流程函数
函数 | 功能 |
---|---|
if(value , t, f) | 如果 value 为 true,则返回 t,否则返回 f |
ifnull(value1 , value2) | 如果 value1 不为空,返回 value1,否则返回 value2 |
case when [val1 ] then [res1] ... else [default] end | 如果 val1 为 true,返回 res1,… 否则返回 default 默认值 (范围) |
case[ expr ] when [val1 ] then [res1] ... else [default] end | 如果 expr 的值等于 val1,返回 res1,… 否则返回 default 默认值 |
create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '数学',english int comment '英语',chinese int comment '语文'
)comment '学生成绩表';
insert into score values (1,'Tom',67,88,95),(2,'Rose',23,66,90),(3,'Jack',56,98,76);selectid,name,(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end)'数学',(case when english>= 85 then '优秀' when english >=60 then '及格' else '不及格' end)'英语',(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end)'语文'
from score;