3.mysql函数

函数指的是一段可以直接被另一个程序调用的程序或者代码
字符串函数
数值函数
日期函数
流程控制函数

字符串函数

函数功能
CONCAT(S1,S2…Sn)字符串拼接函数,将S1,S2…Sn拼接成一个字符串
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个长度的字符串
select concat('hello','mysql'); 
hellomysql
SELECT lower('Hello');
hello
SELECT upper('Hello');
HELLO
SELECT lpad('01',5,'-');
---01
SELECT rpad('01',5,'-');
01---
SELECT trim(' Hello Mysql ');
Hello Mysql
SELECT substring('Hello Mysql',1,5)
Hello

数值函数

常见的数值函数

函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,y)返回x/y的模
RAND()返回0~1随机数
ROUND(x,y)求参数的x的四舍五入的值,保留y位小数
select floor(1.9);
#1 就是舍
SELECT ceil(1.4);
#结果为2向上取整就是入
SELECT mod(4,3);
#1 取余
SELECT rand();
#0~1的随机数
SELECT ROUND(2.345,2)
#2.35 保留两位小数
#生成6位随机数
SELECT lpad(round(rand()*1000000,0),6,'0');
SELECT substring(rand(),3,6)

日期函数

函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)指定date月份
DAY(date)获取指定date日期
DATE_ADD(date,INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1,date2返回起始时间date1和结束时间date2之间的天数
SELECT curdate();
2024-08-12
SELECT curtime();
10:01:16
SELECT now();
2024-08-12 10:01:16
SELECT YEAR(now());
2024
SELECT MONTH(now());
8
SELECT DAY(now());
12

#dateadd()
SELECT date_add(now(),INTERVAL 70 DAY);
2024-10-21 10:01:16

SELECT date_add(now(),INTERVAL 70 YEAR);
2094-08-12 10:01:16
SELECT DATEDIFF('2024-10-1','2024-1-1');
 274

流程函数

条件筛选

函数功能
IF(value,t,f如果value为true,则返回t,否则返回f
IFNULL(value1,value2)如果value不为空,返回value1,否则返回value2
CASE WHEN [val1] THEN [res1] …ELSE [default] END如果val1为true,返回res1,否则返回default默认值
CASE [expr] WHEN [va1] THEN [res1] …ELSE [default] END如果expr值等于val1,返回res1,否则返回default默认值
SELECT if(true,'ok','error');
#ok
SELECT if(false,'ok','error');
#error
SELECT IFNULL('ok','Default');
#ok
SELECT IFNULL('','DEFAULT');
#空
SELECT IFNULL(null,'DEFAULT');
#DEFAULT
select name,
(case workaddr when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from employee;

create table score(
 id int comment 'ID',
 name varchar(20) COMMENT '姓名',
 math int comment '数学',
 english int comment '英语',
 chinese int comment '语文'
) comment '成绩表';

insert into score values(1,'tom',67,88,95),(2,'rose',23,66,98),(3,'jack',56,98,76);

--统计学员成绩 >=85 优秀 >=60 及格,否则不展示

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值