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;
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/2806.html
文章版权归作者所有,未经允许请勿转载。
THE END