• 9.MySQL函数


    MySQL函数:函数是指可以直接被另一段程序调用的程序或者代码;函数一般都已经内置;

    1. 字符串函数

    (1) concat(s1,s2,s3…) 字符串拼接函数,将s1,s2,s3… 拼接成一个字符串;使用逗号分隔;

    (2) lower(str) 将字符串str 全部转为小写;

    (3) upper(str) 将字符串str 全部转为大写;

    (4) lpad(str,n,pad) 左填充,用字符串pad 对str的左边进行填充,直到达到n个字符串的长度;【n:总长度,控制字符串总长度】

    (5) rpad(str,n,pad) 右填充,用字符串pad对str的右边进行填充,直到达到n个字符串的长度;【n:总长度,控制字符串总长度】

    (6) TRIM(str) 去掉字符串头部和尾部的空格,不去掉中间的空格;

    (7) substring(str,start,len) 截取函数:返回字符串str从start位置起的len个长度的字符串;

    -- concat() 拼接
    select concat('ab','cd','ef');
    
    -- lower() 转小写
    select lower('ABCd1');
    
    -- upper() 转大写
    select upper('abcD1');
    
    -- lpad()左填充  -- 4123
    select lpad('123',4,'456');
    
    -- lpad()左填充  -- aba123 【如果填充后还不够会继续填充】 
    select lpad('123',6,'ab');
    
    -- rpad()右填充  -- 1234
    select rpad('123',4,'456');
    
    -- trim()去除空格
    select trim(' 555 ');
    
    -- substring 截取 -- 从第一个字符开始,总共截取3个字符  123
    select substring('123456',1,3);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    2. 数值函数

    常见的数值函数:

    ​ (1) ceil(x) 向上取整; 取整数:5.66 -> 去掉少数点后面的数并加一 6

    ​ (2) floor(x) 向下取整;取整数:5.66 -> 去掉少数点后面的数并减一 5

    ​ (3) mod(x,y) 返回x/y的模; – 取余

    ​ (4) rand() 返回 0~1 内的随机数;

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

    -- 向上取整 -- 6
    select ceil(5.66);
    
    -- 向下取整 -- 5
    select floor(5.66);
    
    -- 返回x/y的模 也就是取余函数 5/2 余1 如果y=0 结果为null
    select mod(5,2);
    
    -- 返回0~1内的随机数
    select rand();
    
    -- 求参数x的四舍五入的值,保留y位小数 -- 5.7
    select round(5.66,1);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    3. 日期函数

    常见日期函数:

    (1) curdate() 返回当前日期;

    (2)curtime() 返回当前时间;

    (3)now() 返回当前日期和时间;

    (4)year(date) 获取指定date的年份;

    (5)month(date) 获取指定date的月份;

    (6)day(date) 获取指定date的日期;

    (7)date_add(date,INTERVAL expr type) 返回上一个日期/时间值加上一个时间间隔expr 后的时间值;【type :可以是年或月或日】

    (8)datediff(date1,date2) 返回起始时间date1 和结束时间date2 之间的天数;

    -- 当前日期
    select curdate();
    
    -- 当前时间
    select curtime();
    
    -- 当前日期与时间
    select now();
    
    -- 指定date的年份【可以是时间字符串】
    select year('2022-09-24 01:12:07');
    
    select year(now());
    
    -- 指定date的月份
    select month(now());
    
    -- 指定date的日期
    select day(now());
    
    -- 上一个日期/时间值【加上】 一个时间间隔expr后的时间值
    -- 当前时间加上3年
    select date_add(now(),interval 3 year);
    
    -- 当前时间加上3月
    select date_add(now(),interval 3 month);
    
    -- 当前时间加上3天
    select date_add(now(),interval 3 day);
    
    -- 返回起始时间和结束时间之间的天数 【前面的参数减去后面的参数】
    -- 如果后面的日期大,结果为负数
    select datediff(now(),'2022-09-23 01:12:07');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    4. 流程函数

    流程函数可以在SQL语句中实现条件筛选,提高语句的效率

    常见流程函数:

    (1) if(value,t,f) 如果value为true则返回t,否则返回f ;

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

    (3) case when [val1] then [res1] … else [default] end 如果【val1 为true】,返回res1 …否则返回default默认值;

    (4) case [expr] when [val1] then [res1] …else[default] end 如果expr的值等于val1 ,返回res1 … 否则返回的default 默认值;

    -- if() -- yes
    select if(1=1,'yes','no');
    
    -- ifnull() 判断第一个值是否为null,如果为null 则返回第二个值 -- 5
    select ifnull(5,'OK');
    
    -- OK
    select ifnull(null,'OK');
    
    -- case ... when ... then ... else ... end
     select
    	case
    		id when 1 then '第一个id'
    		else '不是第一个id'
    	end
    from
    	mysql_test.test_user_new;
    
    -- case when .. then .. else .. end
     select
    	case
    		when id = 1 then '第一个id'
    		else '不是第一个id'
    	end
    from
    	mysql_test.test_user_new;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    C++入门及简单例子_4
    地图双屏鼠标跟随效果
    uniapp:使用百度API提取身份证信息(微信小程序适用)
    电子科大软件系统架构设计——系统架构设计
    Python顺序表
    工作工具历史记录
    视频剪辑没素材?一定要收藏这几个网站。
    集群分布式储存
    工业RFID读写器选择指南
    JavaWeb整体介绍
  • 原文地址:https://blog.csdn.net/weixin_52578409/article/details/127644637