MySql:函数

函数:是指一段可以直接被另一段程序调用的程序和代码

字符串函数

常见的字符串函数:

--concat  字符串拼接
select concat('Hello','MySql');    -> Hello MySql

--lower  转小写
select lower('Hello');      -> hello

--upper  转大写
select upper('Hello');     -> HELLO

--lpad  左填充
select lpad('01',5,'-');      ->  ---01

--rpad 右填充
select rpad('01',5,'-');       ->  01---

--trim  去除空格
select trim('    hello  word    ');     ->hello  word

-- substring  字符串截取
select substring('Hello word',1,5);    ->Hello (索引从1开始)

案例:

由于业务需求变更,企业员工的工号,同一为5位数,目前不足5位数的全部在前面补0,比如:1号员工的工号应该为:00001

update emp set workno = lpad('workno',5,'0');

 数值函数

--ceil 向上取整数
select ceil(1.1);             ->2

--floor  向下取整
select floor(1.9);             ->1

--mod 取模运算 求余数
select mod(7,4);             ->3

--rand  0-1 之间的随机数
select rand();

--round  四舍五入
select round(2.344,2);             ->2.34   保留两位小数四舍五入

案例:

通过数据库的函数,生成一个六位数的随机验证码:select lpad(  round(  rand()*1000000  ,0 ),6,'0');

日期函数

案例:

查询所有员工的入职天数,并根据入职天数倒叙排序

select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydays desc;

 流程控制函数

case案例1(上面表格的第四种case):

查询emp表的员工姓名和工作地址(北京/上海显示为一线城市,其他显示为二线城市)

select
    name,
    (case wordaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end)  as '工作地点'
from emp;

case案例2(上面表格的第三种case):

统计成绩,大于等于85展示优秀,大于等于60展示及格,否则展示不及格

SELECT
    id,
		name,
		(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end) '数学',
		(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end) '英语',
		(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end) '语文'
from score;

 

阅读剩余
THE END