⑥ 【MySQL函数】字符串函数、数值函数、日期函数、流程函数

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

MySQL函数

  • ⑥ 字符串函数、数值函数、日期函数、流程函数
    • 1. 字符串函数
    • 2. 数值函数
    • 3. 日期函数
    • 4. 流程函数


⑥ 字符串函数、数值函数、日期函数、流程函数


1. 字符串函数

常见字符串函数

  • ①字符串拼接,将S1,S2,S3…凭借成一个字符串

    • CONCAT(S1,S2,...Sn)
      
  • ②将字符串str全部传换成小写

    • LOWER(str)
      
  • ③将字符串str全部转换成大写

    • UPPER(str)
      
  • ④左填充,用字符串pad对str的左边进行填充,达到n个字符串长度

    • LPAD(str,n,pad)
      
  • ⑤右填充,用字符串pad对str的右边进行填充,达到n个字符串长度

    • RPAD(str,n,pad)
      
  • ⑥去掉字符串头部和尾部的空格

    • TRIM(str)
      
  • ⑦返回从字符串str从start位置起的len长度的字符串

    • SUBSTRING(str,start,len)
      



2. 数值函数

常见数值函数

  • ①向上取整

    • CEIL(X)
      
  • ②向下取整

    • FLOOR(X)
      
  • ③返回x/y的模(余数)

    • MOD(X,Y)
      
  • ④返回0 - 1内的随机数

    • RAND()
      
  • ⑤求参数x的四舍五入,保留y位小数

    • ROUND(X,Y)
      
  • -- 案例:通过数据库函数生成一个6位数的随机验证码
    SELECT LPAD(ROUND(RAND()*1000000,0),6,'0');
    



3. 日期函数

常见日期函数

  • ①返回当前日期

    • CURDATE()
      
  • ②返回当前时间

    • CURTIME()
      
  • ③返回当前日期和时间

    • NOW()
      
  • ④获取指定date的年份

    • YEAR(date)
      
  • ⑤获取指定date的月份

    • MONTH(date)
      
  • ⑥获取指定date的日期

    • DAY(date)
      
  • ⑦返回一个日期/时间值加上一个时间间隔exper后的时间值

    • DATE_ADD(date,INTERVAL exper type)
      
  • ⑧返回起始时间date1和结束时间date2之间的天数

    • DATEDIFF(date1,date2)
      



4. 流程函数

流程函数

  • 流程函数是一类常用的函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

  • ①如果value为true,返回t,否则返回f

    • IF(value,t,f)
      
  • ②如果value不为空,返回value1,否则返回value2

    • IFNULL(value1,value2)
      
  • ③如果val1为true,返回res1,…否则返回default默认值,END结束

    • CASE 
      WHEN [val1] THEN [res1]
      WHEN [val2] THEN [res2]
      ...
      WHEN [valn] THEN [resn]
      ELSE [default]
      END
      
  • ④如果exper的值等于val1,返回res1,…否则返回default默认值,END结束

    • CASE [expr]
      WHEN [val1] THEN [res1]
      WHEN [val2] THEN [res2]
      ...
      WHEN [valn] THEN [resn]
      ELSE [default]
      END
      
  • -- 演示
    
    -- 创建表,插入数据
    create table score(
        id int comment 'ID',
        name varchar(20) comment '姓名',
        math int comment '数学',
        english int comment '英语',
        chinese int comment '语文'
    ) comment '学员成绩表';
    
    insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), 
    (2, 'Rose' , 23, 66, 90),
    (3, 'Jack', 56, 98, 76);
    
    
    /*
    统计班级各个学员的成绩,展示规则如下:
    >=85 展示优秀
    >=60 展示几个
    否则 展示不及格
    */
    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;
    
    -- 
    



你可能感兴趣的:(SQL,拿来即用。,mysql,数据库,database,db,函数)