• 数据库sql函数归纳


    函数:
    1、字符串函数
    concat(s1、s2、...sn)        字符串拼接、将s1、s2、...sn拼接为一个字符串;

    SELECT CONCAT('yi',' xing');


    lower(str)                      将字符串转为小写

    SELECT LOWER('YIXINgui');


    upper(str)                      将字符串转为大写

    SELECT UPPER('yixingGUI');


    lpad(str,n,pad)         左填充,用字符串pad对str的左边进行填充,达到n个字符串

    SELECT LPAD('YI',10,'SHUAI');


    rpad(str,n,pad)         右填充,用字符串pad对str的右边进行填充,达到n个字符串

    SELECT RPAD('GUAGUA',10,'WUDI!');


    trim(str)                        去掉字符串头部和尾部的空格

    SELECT TRIM('    WUDI!   GUAGUA                ');


    substring(str,start,len)在字符串str中从start位置起截取len个长度的字符串

    SELECT SUBSTRING('2DADAG2',2,3

    );

    案例:

    1. SELECT id,LPAD(workno,5,0),`name` FROM emp ORDER BY id desc;--错误示范
    2. SELECT * FROM emp;
    3. UPDATE emp SET workno=LPAD(workno,5,0);--正确示范

    2、数值函数:
    cel(x)      向上取整;
    SELECT CEIL(12.1);
    floor(x)   向下取整;
    SELECT FLOOR(13.14);
    mod(x,y)返回x/y的模;
    SELECT MOD(5,2);
    rand()     返回0~1内的随机数;
    SELECT RAND();
    round(x,y)求参数x的四舍五入的值,保留  y位小数。
    SELECT ROUND(3.1415926535,5);

    案例:
    随机生成一个6位验证码。
    SELECT LPAD(ROUND(RAND(),6)*1000000,6,'0');

    3、日期函数:
    curdate()         返回当前日期;
    curtime()         返回当前时间;
    now()          返回当前的日期和时间;
    year(date)   获取指定date的年份;
    month(date)获取指定date的月份;
    day(date)    获取指定date的日期;
    date_add(date,interval exper type)返回一个日期/时间值加上一个时间间隔exper后的时间值;
    datediff(date1,date2)返回起始时间date1和结束时间date2之间的天数。

    1. SELECT CURDATE();
    2. SELECT CURTIME();
    3. SELECT NOW();
    4. SELECT YEAR(NOW());
    5. SELECT MONTH(CURDATE());
    6. SELECT DAY(CURTIME());
    7. SELECT DATE_ADD(NOW(),INTERVAL 14 YEAR);
    8. SELECT 0-DATEDIFF('2001-01-09',NOW());


    案例:查询入职天数并按其倒序排列。

    SELECT DATEDIFF(NOW(),entrydate),`name`,id FROM emp ORDER BY DATEDIFF(NOW(),entrydate) desc;

    4、流程控制:
    if(value,t,f)                         如果value位true,则返回t,否则返回f;
    ifnull(value1,value2)          如果value1不为空,返回value1;否则返回value2;
    case when [val1] then [res1],...else [default] end 如果val1为true,返回res1,...否则返回默认值default;
    case [expr] when [val1] then [res1] ...else [default] end 如果expr的值等于val1,返回res1,...否则返回默认值default;

    1. SELECT IF(TRUE,'ok','NO');
    2. SELECT IFNULL(NULL,'NONE');
    3. SELECT IFNULL('','NONE');
    4. case WHEN 'TRUE' THEN 'ok' ELSE 'null' END;
    5. SELECT `name`, (CASE workaddress
    6.     WHEN '北京' THEN
    7.         '一线城市'
    8.     WHEN '上海' THEN
    9.     '一线城市'
    10.     ELSE
    11.         '二线城市'
    12. END) AS '工作地址'
    13. FROM emp;
    14. SELECT `name`,CASE age
    15.     WHEN 18 THEN
    16.         '帅哥'
    17.     WHEN 19 THEN
    18.       '帅帅哥'
    19.     when 20 THEN
    20.       '大帅哥'
    21.     ELSE
    22.         '我是帅哥'
    23. END AS '帅不帅?' FROM emp;


     

  • 相关阅读:
    (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
    使用 Electron 来替代本地调试线上代理的场景
    vue-cli创建项目(详情步骤)
    解决远程git服务器路径改变导致本地无法push的问题
    网络系统管理 - GWServer虚拟机配置
    嵌入式系统设计与应用---嵌入式系统概述(学习笔记)
    hexo发生错误 Error: Spawn failed
    Ceph入门到精通-设置和取消设置 Ceph 覆盖选项
    二极管的直流等效电路和微变等效电路
    【Reinforcement Learning】Ubuntu中mujoco210 mujoco_py D4RL安装及错误解决
  • 原文地址:https://blog.csdn.net/qq_46103282/article/details/132949227