• 基础SQL 函数


    在MySQL中内置了很多函数,我们可以通过一段程序或者代码直接调用这个函数

    一、字符串函数

    下面通过例子来验证这些函数

    1. -- 字符串函数
    2. -- concat函数
    3. select concat("hello ","world");
    4. -- lower函数
    5. select lower("HELLO");
    6. -- upper函数
    7. select upper("heelo");
    8. -- lpad函数
    9. select lpad("123",5,'0');
    10. -- rpad函数
    11. select rpad("123",5,'0');
    12. -- trim函数
    13. select trim(" hello world ");
    14. -- substring函数
    15. select substring("1234556789",2,3);

    实例说明:

    统一一个表的员工工号,不足8位的在前面补0

    先查看实例前的员工表

    更新字段的值使用updat语句

    数值函数

    常见的数值函数有

    1. -- 数值函数
    2. -- ceil函数
    3. select ceil(4.5);
    4. -- floor函数
    5. select floor(5.9);
    6. -- mod函数
    7. select mod(100,2);
    8. -- rand函数
    9. select rand();
    10. -- round函数
    11. select round(3.1415926,3);

    实例说明

    生产一个随机的六位数的验证码

    日期函数

    1. -- 日期函数
    2. -- curdate函数 当前日期
    3. select curdate();
    4. -- curtime函数 当前时间
    5. select curtime();
    6. -- now函数 当前日期和时间
    7. select now();
    8. -- year(date)函数 获取date的年份
    9. select year(now());
    10. -- month(date)函数 获取date的月份
    11. select month(now());
    12. -- day(date)函数 获取date的日期
    13. select day(now());
    14. -- date_add(date,interval expr type)函数 返回一个日期/时间值加上时间间隔expr后的时间值
    15. select date_add(now(),interval 30 day); -- 30天后
    16. -- datediff(date1,datw2)返回起始时间date1和结束时间date2之间的天数
    17. select datediff(curdate(),'1949-10-01');

    现在有这样一张表

    -- 查询所有员工的入职天数,并根据入职天数倒序排序
    select name,datediff(curdate(), entrydate) '入职天数' from emp order by '入职天数' desc ;

    流程函数

    1. -- 流程函数
    2. -- if(value,t,f)函数 如果value为true,则返回t,否则返回f
    3. select if(2>3,2,3);
    4. -- ifnull(value1,value2) 如果value1不为空,返回value1,否则返回value2
    5. select ifnull(null,'hello');
    6. -- case when [val1] then [res1]...else [default] ebd函数
    7. -- 如果val1为true,返回res1,... 否则返回default默认值
    8. select case when 2+3>6 then '正确' else '错误' end;
    9. -- CASE [expr] WHEN [val1] THEN [res1] ... ELSE [ default ] END函数
    10. -- 如果expr的值等于val1,返回res1,... 否则返回default默认值
    11. select case 2 WHEN 3 then '对' else '错' end;

    流程函数需要结合具体案例来分析使用

    接下来,进行一下案例的分析

    现在有一张员工表

    查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

    sql语句怎么书写

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

    例子2

    有这样一个分数表

    >=85优秀,>=60及格,<60不及格

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

    总结

  • 相关阅读:
    linux操作系统进程控制详解
    【大数据】Doris 构建实时数仓落地方案详解(一):实时数据仓库概述
    使用docker-compose安装gitlab-ce 以及升级gitlab
    ESP8266-Arduino编程实例-MMA7660加速计驱动
    (工厂+策略)实现登录功能
    适用于Windows平台的录屏软件Captura简介
    【机器学习】梯度下降法与牛顿法【Ⅰ】梯度下降法概述
    RPA-机器人流程自动化
    《计算机视觉中的多视图几何》笔记(2)
    吃顿饭的时间,学会simulink之BLDC基本原理
  • 原文地址:https://blog.csdn.net/m0_73850645/article/details/138175761