目录
一、字符串函数
-- concat [字符串拼接]
select concat('Hello','world');
-- lower [全部转化为 小写]
select lower('HelloWorld');
-- upper [全部转化为 大写]
select upper('HelloWorld');
-- lpad [左填充,类似于'/t']
select lpad('01',5,'-');
select lpad('01',9,'#');
-- rpad [右填充,类似于'/t']
select rpad('01',5,'-');
-- trim [去除空格,只能去除头部和尾巴,中间的空格不能去除]
select trim(' Hello world ');
-- substring [字符串截取 从第个位置截取,截取五个]
select substring('hello world',1,5); # 截取出了 hello
select substring('hello world',7,5); # 截取出了 world
-- 1.将表中的人id改为三位数,位数不足的在前面添0
update emp set name = lpad(name,5,'0');
二、数值函数
-- ceil [向上取整]
select ceil(1.1); # 1
-- floor [向下取整]
select floor(1.8); # 2
-- mod [取余数]
select mod(5,4); # 1
-- rand [随机数(0-1之间)]
select rand();
-- round [四舍五入]
select round(2.34567,1); #保留一位小数: 2.3
select round(2.34567,2); #保留两位小数: 2.35
select round(2.34567,3); #保留三位小数: 2.346
-- 随机生成 六位数的验证码:
select rpad(round(rand()*1000000,0),6,'0');
三、日期函数
-- curdate() [当前 年月日]
select curdate();
-- curtime() [当前 时分秒]
select curtime();
-- now() [当前 年月日+时分秒]
select now();
-- 分别获得 年月日
select year(now()); #年
select month(now()); #月
select day(now()); #日
-- date_add [往后加多少]
select date_add(now(),INTERVAL 50 year ); #加70年
select date_add(now(),INTERVAL 50 month ); #加70月
select date_add(now(),INTERVAL 50 day ); #加70天
-- datediff [时间相距多少] [有正负!!!]
select datediff('2020-10-01','2030-10-01'); # -3652
select datediff('2040-10-01','2030-10-01'); # 3652
四、流程函数:
-- if [true返回第一个参数,false返回第二个参数]
select if(true, 'ok', 'error'); # 返回ok
select if(false, 'ok', 'error'); # 返回error
-- ifnull [如果为空,则返回‘default’,如果不为空,则返回本身 ]
select ifnull('ok','default'); # 返回 ok
select ifnull(null,'default'); # 返回 default
-- case
select
id as '编号',
(case when chinese >=90 then '优' when chinese >=80 then '良' when chinese >=60 then '及格' else '不及格' end) as '数学',
(case when math >=90 then '优' when math >=80 then '良' when math >=60 then '及格' else '不及格' end) as '语文',
(case when english >=90 then '优' when english >=80 then '良' when english >=60 then '及格' else '不及格' end) as '英语'
from grade;
-- 创建成绩数据
insert into grade(id, chinese, math, english) values (1, 60, 70, 80);
insert into grade(id, chinese, math, english) values (2, 90, 80, 85);
insert into grade(id, chinese, math, english) values (3, 50, 60, 65);