• 数据库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;


     

  • 相关阅读:
    分布式和可再生系统建模(simulink)
    Hello Erupt
    AWK语言第二版 2.6个人库 2.7小结
    将Apache服务与内网穿透结合,让您的网站可以公网访问
    实时WebRTC网页播放器进入快速功能迭代
    黑客技术(网络安全)—小白自学
    Jenkins的安装及使用
    pthread_join函数的应用
    关于Go语言的底层,Channel
    MySQL学习笔记3:排序规则和排序规则的影响
  • 原文地址:https://blog.csdn.net/qq_46103282/article/details/132949227