4、MySQL数据库函数

MySQL数据库函数

0、准备

-- 展示所有数据库
show databases;
-- 查询当前数据库
select database();
-- 使用数据库
use start;
-- 查询数据表
select name '姓名' from tb_employee;

1、字符串函数

拼接函数 CONCAT()

select concat(name,":",sex) "姓名"   from tb_employee;

在这里插入图片描述

字符串转换大小写函数 转小写 LOWER() 转大写 UPPER();

select concat('hello','mysql') 'str';

-- 添加用户字段
alter table tb_employee  add username varchar(20) comment '用户';
-- 更新数据
update tb_employee set username='zhansan'  where entry % 2 = 0;
update tb_employee set username='LISI'  where entry % 2 != 0;
select lower('USERNAME') ,UPPER('username');
select LOWER(username) "用户" ,UPPER(username) "用户"   from tb_employee;

填充函数 左填充 LPAD(str,n,pad) 右填充 RPAD(str,n,pad)

select LPAD(username,10,name) "用户" , RPAD(username,10,name) "用户"   from tb_employee;

去除头尾空格函数 TRIM();

select TRIM('   username   ');
select TRIM(username) "用户"   from tb_employee;

字符串截取函数 SUBSTRING(STR,START,LEN) START从1开始

select SUBSTRING('username',1,5);
select SUBSTRING(username,1,5) "用户"   from tb_employee;

案例

由于业务需求员工工号统一为6位编号,原不足6位统一在之前补0
update tb_employee set id = lpad(id,6,0); 

在这里插入图片描述

2、数值函数

取整函数 向上取整ceil() 向下取整floor()

select ceil(50.25),floor(50.25);

模函数 mod()

select mod(60,50);

随机数rand()

select rand() * 100; 

四舍五入round(x,y) x是四舍五入的数值,y是保留几位小数

select round(5.5565,2) ;

案例

由于业务需求在用户登录时需要一个随机的6位数验证码
select lpad(round(rand()*1000000,0),6,"0") ;

在这里插入图片描述

3、日期函数

返回当前日期

select curdate();

返回当前时间

select curtime(); 

返回当前日期和时间

select now();

获取指定年份

select year(now());

获取指定月份

select month(now());

获取指定日期

select day(now());

返回一个日期 时间值上加上一个时间间隔expr后的时间值

select date_add(now(), interval 70 day);

返回结束日期和起始日期的天数

select datediff(date_add(now(), interval 70 day),now()) ;

案例

查询入职员工的工作时间,并且按倒叙排序
select name,datediff(now(),entry) 'entrydays' from tb_employee  order by entrydays desc;

4、流程函数

判断值是否为true 三个参数,为真返回啥,为假返回啥

select if(true,'真','假');

案例

公司需要给工龄大于35天的员工发奖励ipad否则奖励小米
select name, if(datediff(now(),entry)>35,'ipad','小米')  'entrydays' from tb_employee  ;

如果value1不为空返回value1 否则返回value2 ifnull(value1,value2)

select ifnull(null,18),ifnull(20,18);  

case when then else end 相当于联合判断

案例

查询表员工姓名和工作地址 如果是四川就显示九寨沟,如果是重庆就显示火锅,如果是安徽就显示鳜鱼
select 
	name,
	workaddress,
	case workaddress 
	when "四川" then "九寨沟"  
	when "重庆" then "火锅" 
	when "安徽" then "鳜鱼" 
	else "还不清楚" end 
	"好吃好玩"
from tb_employee;
select 
	name,
	workaddress,
	case  
	when workaddress ="四川" then "九寨沟"  
	when workaddress ="重庆" then "火锅" 
	when workaddress ="安徽" then "鳜鱼" 
	else "还不清楚" end 
	"好吃好玩"
from tb_employee;

在这里插入图片描述

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值