mysql入门到精通004-基础篇-函数

1、字符串函数

1.1 概念

指一段可以直接被另一段程序直接调用的程序或者代码

1.2 应用场景

1.3 常用的字符串函数

1.4 语法

SELECT 函数(参数);

1.5 案例

案例1: concat()

select concat("Hello","MYSQL");

执行结果: 

案例2: lower()

select lower("Hello");

执行结果:

案例3: upper()

select upper("hello");

案例4: lpad()

select lpad("01",5,"-");

案例5: rpad()

select rpad("01",5,"-");

案例6: trim()

select trim("  Hello MYSQL  ")

案例7: substring()

// 注意索引是从1开始的
select substring("Hello MYSQL",1,5);

练习1: 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0,比如1号员工的工号应该为00001 

update emp set workno = lpad(workno,5,"0");

2、数值函数

2.1 常见的数值函数

2.2 案例

案例1:ceil(x) 向上取整

// 返回 2
select ceil(1.5);


// 返回 2
select ceil(1.1);

案例2:floor(x) 向下取整

// 返回 1
select floor(1.9);


// 返回 1
select floor(1.1);

案例3:mod(x,y) 返回x/y的模

// 6/4 取余 ----> 2
select mod(6,4)

案例4:rand()  返回0-1内的随机数

select rand();

案例5: round(x,y)  求参数x的四舍五入的值,保留y位小数

select round(2.344,2);

案例6:通过数据库的函数,生成一位6位数的随机验证码

select lpad(round(rand()*1000000),6,"0");

3、日期函数

3.1 常见的日期函数

3.2 案例

案例1:查询所有员工的入职天数,并根据入职天数进行倒序排序

第一步:列出入职天数


select name datediff(currentDate(),entrydate) from emp;

第二步 使用别名进行排序

select name datediff(currentDate(),entrydate) as "entrydays" from emp order by entrydays desc;

4、流程函数

主要用于条件筛选,提高语句的效率。

4.1 常见的流程函数

4.2 案例

案例1:if(value,t,f),value为true返回t,value为false返回f

select if(true,"OK","Error");

案例2:ifnull(value1,value2),value1不为空(null)返回value1,否则返回value2

select ifnull("OK","Default");

案例3:case when [val1] then [res1] else [default] end,如果val1为true,返回res1,否则返回default

查询emp表的员工姓名和工作地址(如果员工地址是上海或者北京,则展示一线城市,否则展示二线城市)

select name,(case workaddress when "北京" then "一线城市" when "上海" then "一线城市" else "二线城市" end) as “工作地址” from emp;

案例4: 统计班级各个学员的成绩,展示规则如下:

  • >=85,展示优秀
  • >=60,展示及格
  • 否则,展示不及格

score表已经提供

select
  id,
  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;

5、函数小结

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值