一、字符串函数
--concat(连接)
selete concat('Hello','World');
--lower(小写)
selete lower('HELLO');
--upper(大写)
selete upper('hello');
--lpad(左填充)
selete lpad('01',5,'-');
--rpad(右填充)
selete rpad('01',5,'-');
--trim(去除头尾空格)
selete trim(' hello mysql ');
--substring(截取字符)
selete substring('hello mysql',1,5);
案例:员工工号5位数,往前补零3
update emp set workno = lpad('workno',5,'0');
二、数值函数
--ceil(向上取整)
selete ceil(1.5);
--floor(向下取整)
selete floor(1.9);
---mod(求模)
selete mod(7,4);
--rand(求0-1随机)
selete rand();
--round(四舍五入)
selete round (2.3344,2);
案例:通过数值函数生成一个6位的大随机验证码
selete lpad(round(rand()*1000000,0),6,'0');
三、日期函数
--curdate
selete curdate();
--curtime
selete curtime();
--YEAR MONTH DAY
selete YEAR(NOW());
selete MONTH(NOW());
selete DAY(NOW());
--DATE_ADD()
selete date_add(now(),interval 70 year);
--dateiff
selete dateiff('2002-05-03','2003-08-02');
--案例
selete name,dateiff(curdate(),entrydate) as entrydate from emp order by entrydays decs;
四、流程函数
--if
selete if(false,'OK','Error');
--ifnull(判断是否为空)
selete ifnull('ok','default');
selete ifnull('','default');
--case when else end
--查询emp表的员工姓名和工作地址(北京/上海----一线;其它-----二线)
selete
name,
case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市'
from emp;
--案例:统计班级成绩,展示规则:
-->=85,展示优秀
-->=60,展示及格
selete
ID,
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;