代码如下(示例):
-- --------------------------------------函数演示-----------------------------------------
-- concat
select concat('Hello','MySQL'); #HelloMySQL
-- 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 MySQL '); #Hello MySQL
-- substring
select substring(' Hello MySQL ',1,5); # Hell
代码如下(示例):
update emp set workno = lpad(workno,5,'0')
注:本文所用于演示的数据表为 emp ,构建代码于文章:MySQL数据库基础第一篇(SQL通用语法与分类)可见
代码如下(示例):
-- ------------------------------------------------------------------------------------------
-- 数值函数
-- ceil
select ceil(1.1); #2
-- floor
select floor(1.9); #1
-- mod
select mod(7,4); #3
-- rand
select rand(); #0.9526048888942272
-- round
select round(2.3445,2); #2.34
代码如下(示例):
select lpad(round(rand()*1000000,0),6,0);
代码如下(示例):
-- ------------------------------------------------------------------------------------------
-- 日期函数
-- curdate
select curdate(); #2024-02-01
-- curtime
select curtime(); #11:26:00
-- now
select now(); #2024-02-01 11:26:09
-- year month monthname
select year(now()); #2024
select month(now()); #2
select day(now()); #1
-- date_add
select date_add(now(),interval 70 month ); #2029-12-01 11:30:31
-- datediff
select datediff('2024-02-01 ','2029-07-11 '); #-1987
代码如下(示例):
select name,datediff(curdate(),entrydate) as '入职天数' from emp order by entrydate desc ;
代码如下(示例):
-- ------------------------------------------------------------------------------------------
-- 流程控制函数
-- if
select if(false,'ok','Error'); #Error
-- ifnull
select ifnull('ok','Default'); #ok
select ifnull(null,'Default'); #Default
--
-- 需求:查询emp表的员工姓名与工作地址(北京|上海 ---->一线城市 ,其他 ---->二线城市)
select
name,
(case workaddress when '北京' then '一线城市'when '上海' then '一线城市'else '二线城市' end ) as'工作地址'
from emp;
代码如下(示例):
select
ID,
name,
age,
(case when 编程成绩 >=85 then '优秀' when 编程成绩 >= 60 then '及格' else '不及格' end )'编程成绩',
(case when 高数成绩 >=85 then '优秀' when 高数成绩 >= 60 then '及格' else '不及格' end )'高数成绩',
(case when 外语成绩 >=85 then '优秀' when 外语成绩 >= 60 then '及格' else '不及格' end )'外语成绩'
from 表_name