函数 是一段可以直接调用的程序
字符串函数
| CONCAT(S1,S2,S3) | 字符串拼接将s1,s2 s3拼接成一个字符串 |
| LOWER(str) | 将字符串str全部转为小写 |
| UPPER(str) | 将字符串str全部转为大写 |
| LPAD(str, n,pad) | 左填充,用字符串Pad对str的左边进行填充,达到n个字符串长度 |
| RPAD(str, n,pad) | 右填充,用字符串Pad对str的右边进行填充,达到n个字符串长度 |
| TRIM(str) | 去掉字符串头部和尾部的空格 |
| SUBSTRING(str,start,len) | 返回从字符串str从start位置起的len个长度的字符串 |
由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数,目前不足5位数的全部在前面补0.比如1号员工的工号应该为00001
update emp set workno = lpad(workno,5,'0');
数值函数
| CEIL(x) | 向上取整 |
| FLOOR(x) | 向下取整 |
| MODX(x,y) | 返回x/y的模 |
| RAND() | 返回0~1内的随机数 |
| ROUND(x,y) | 求参数x的四舍五入的值,保留y位小数 |
日期函数
| CURDATE() | 返回当前日期 |
| CURTIME() | 返回当前时间 |
| NOW() | 返回当前日期和时间 |
| YEAR(date) | 获取指定date的年份 |
| MONTH(date) | 获取指定date的月份 |
| DAY(date) | 获取指定date的日期 |
| DATE_ADD(date,INTERVALexpr type) | 返回一个日期/时间值加上一个时间间隔expr后的时间值 |
| DATEDIFF(date 1,date 2) | 返回起始时间date1 和结束时间date2之间的天数 |
查询所有员工的入职天数,并根据入职天数倒序排序
select name, datediff(curdate(),entrydate)as 'entrydays'from emp order by entrydays desc;
流程函数
|IF(value ,t,f) | 如果value为true,则返回t,否则返回f |
| IFNULL(Value1,Value2) | 如果value不为空,返回value1,否则返回value2 |
| CASE WHEN[vall] THEN[res1] ELSE[default] END | 如果val1为true 返回res1否则返回default默认值 |
| CASE [expr] WHEN [val1] THEN[res1]....ELSE[default] END | 如果expr的值等于val1 返回res1 ,否则返回defaul默认值 |
查询emp表中的员工姓名和工作地址
select
name,
( case workaddress when '北京' then '一线城市' when '上海' then '一线城市'else '二线城市'end) as '工作地址'
from emp;
案例:统计班级各个学校的成绩展示的规则如下
标签:返回,comment,函数,基础,字符串,str,mysql,date From: https://www.cnblogs.com/qianmo-/p/18547528=85 表示优秀
=60 展示合格
否则 展示不及格
create table scare(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '数学',
english int comment '盈余',
chinese int comment '语文',
)comment '学员成绩表';
insert into score(id,name,math,english,chinese) VALUES(1,'Tom',67,88,95),(2,'Rose',23,66,98),(3'Jack',56,98,76);