SQL函数

SQL函数

文章目录

  • SQL函数
    • 聚合函数
    • 字符串函数
      • CONCAT 字符串拼接
      • LOWER 转小写
      • UPPER 转大写
      • LPAD 左填充
      • RPAD 右填充
      • TRIM 去头尾空格
      • SUBSTRING 截取部分字符串
    • 数值函数
      • CEIL 向上取整
      • FLOOR 向下取整
      • MOD 取模
      • RAND 返回0-1随机数
      • ROUND 四舍五入,保留小数
    • 日期函数
      • CURDATE 当前日期
      • CURTIME 当前时间
      • NOW 当前日期和时间
      • YEAR 指定date的年份
      • MONTH 指定date的月份
      • DAY 指定date的日期
      • DATE_ADD 对当前日期做增加
      • DATEDIFF 两个日期之间间隔天数
    • 流程函数
      • IF 判断
      • IFNULL 判断
      • CASE分支判断

聚合函数

SQL函数_第1张图片

这个部分比较简单,且容易记忆,只放了图

字符串函数

SQL函数_第2张图片

CONCAT 字符串拼接

SELECT CONCAT('123','456'); # 123456
SELECT CONCAT('123','456','789'); # 123456789

LOWER 转小写

SELECT LOWER('AAa'); # aaa

UPPER 转大写

SELECT LOWER('AAa'); # AAA

LPAD 左填充

SELECT LPAD('1111',5,'0'); # 01111 变量1:字符串 变量2:填充后字符串长度 变量3: 填充的字符
SELECT LPAD('11111',5,'0'); # 11111
SELECT LPAD('111',5,'07'); # 07111
SELECT LPAD('1111',5,'07'); # 01111

RPAD 右填充

SELECT RPAD('1111',5,'0'); # 11110 变量1:字符串 变量2:填充后字符串长度 变量3: 填充的字符
SELECT RPAD('11111',5,'0'); # 11111
SELECT RPAD('111',5,'07'); # 11107
SELECT RPAD('1111',5,'07'); # 11110

TRIM 去头尾空格

SELECT TRIM(' 单词1  单词2   '); # 单词1  单词2  中间仍有空格,仅去头尾空格

SUBSTRING 截取部分字符串

SELECT SUBSTRING('字符串'01); # 返回空 索引从1开始 变量1:字符串 变量2:开始索引 变量3: 截取长度
SELECT SUBSTRING('字符串',1); # 字符串 变量3省略不写则默认截取到字符串尾部
SELECT SUBSTRING('字符串',1,2); # 字符 从索引1截取长度为2的字符串

数值函数

SQL函数_第3张图片

CEIL 向上取整

SELECT CEIL(1.1); # 2
SELECT CEIL(-1.1); # -1

FLOOR 向下取整

SELECT FLOOR(1.1); # 1
SELECT FLOOR(-1.1); # -2

MOD 取模

SELECT MOD(10,3); # 1

RAND 返回0-1随机数

SELECT RAND(); # 0.2914650238039578 返回0-1任意数,不带任何参数,注意可能返回0.0开头的随机数

ROUND 四舍五入,保留小数

SELECT ROUND(3.333,1); # 3.3 变量1:要四舍五入的数 变量2:保留的小数位
SELECT ROUND(3.373,1); # 3.4

日期函数

SQL函数_第4张图片

CURDATE 当前日期

SELECT CURDATE(); # 2023-06-10

CURTIME 当前时间

SELECT CURTIME(); # 17:13:13

NOW 当前日期和时间

SELECT NOW(); # 2023-06-10 17:13:54

YEAR 指定date的年份

SELECT YEAR(NOW()); # 2023
SELECT YEAR('2020-6-3'); # 2020

MONTH 指定date的月份

SELECT MONTH(NOW()); # 6 指6月份
SELECT MONTH('2020-7-3'); # 7

DAY 指定date的日期

SELECT DAY(NOW()); # 10 指今天10号
SELECT DAY('2020-7-3'); # 3

DATE_ADD 对当前日期做增加

SELECT DATE_ADD('2020-12-01',INTERVAL 60 DAY); # 2021-01-30 当前日期加60天 (INTERVAL 60 DAY) INTERVAL 为固定格式,60为数量,DAY为日期单位 可为DAY,MONTH,YEAR,注意一个月可能有31天
SELECT DATE_ADD('2020-12-01',INTERVAL 10 MONTH); # 2021-10-01
SELECT DATE_ADD('2020-12-01',INTERVAL 10 YEAR); # 2030-12-01

DATEDIFF 两个日期之间间隔天数

SELECT DATEDIFF('2023-6-10','2023-6-8'); # 2 注意是前面的日期减后面的日期
SELECT DATEDIFF('2023-6-8','2023-6-10'); # -2
SELECT DATEDIFF('2024-6-8','2023-6-10'); # 364 

流程函数

SQL函数_第5张图片

IF 判断

SELECT IF(6>1,'ok','error'); # ok 变量1:判断条件 变量2:条件为ture返回该变量 变量3: 条件为false返回该变量
SELECT IF(1>6,'ok','error'); # error 

IFNULL 判断

SELECT IFNULL('1','2'); # 1 变量1不为空返回变量1,反之返回变量2
SELECT IFNULL('','2'); # 返回'',''不为null,只有变量1为null才返回变量2
SELECT IFNULL(NULL,'2');# 2

CASE分支判断

请添加图片描述

# WHEN可有多个分支
SELECT (CASE WHEN 6 > 1 THEN '分支1' WHEN 6 > 1 THEN '分支2' ELSE '默认值' END) dd; # 分支1
SELECT (CASE WHEN 6 < 1 THEN '分支1' WHEN 6 > 1 THEN '分支2' ELSE '默认值' END) dd; # 分支1
SELECT (CASE WHEN 6 < 1 THEN '分支1' WHEN 6 > 1 THEN '分支2' ELSE '默认值' END) dd; # 分支2
SELECT (CASE WHEN 6 < 1 THEN '分支1' WHEN 6 < 1 THEN '分支2' ELSE '默认值' END) dd; # 默认值

SELECT (CASE 6 WHEN 6 THEN '分支1' WHEN 1 THEN '分支2' ELSE '默认值' END) dd; # 分支1
SELECT (CASE 1 WHEN 6 THEN '分支1' WHEN 1 THEN '分支2' ELSE '默认值' END) dd; # 分支2
SELECT (CASE 10 WHEN 6 THEN '分支1' WHEN 1 THEN '分支2' ELSE '默认值' END) dd; # 默认值

你可能感兴趣的:(Mysql,sql,java)