栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql-函数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql-函数

文章目录
      • 聚集函数
      • 字符串函数
          • 字符串长度
          • 合并字符串
          • 字符串插入
          • 字符串替换
          • 字符串大小写转换
          • 字符串截取
          • 字符串扩容填充
          • 字符串两侧删除
          • 字符串重复生成
          • 空字符串生成
          • 字符串比较
          • 字符串定位
          • 字符串翻转
      • 日期和时间函数
          • 当前
          • 比较
          • 加减
          • 转换
      • 数学函数
      • 类型转换函数
          • 隐式转换
          • 显式转换
      • 部分流程控制函数

聚集函数
  • count([distinct]列名) 统计某列的值总和
  • sum([distinct]列名) 统计一列的和(注意必须是数字类型的)
  • avg([distinct]列名) 计算一列的平均值(注意必须是数字类型)
  • max([distinct]列名) 寻找一列的最大值
  • min([distinct]列名) 寻找一列的最小值
# distinct去重
select count(distinct *) from 表名
select sum(distinct quantity) from 表名
select avg(distinct quantity) from 表名
select max(distinct quantity) from 表名
select min(distinct quantity) from 表名

字符串函数 字符串长度
  • length(列名) 返回字节数,一个汉字代表三个字节,一个数字/字母代表一个字节。
  • char_length(列名) 返回字符数
select length(username) from account       //返回9
select char_length(username) from account  //返回3
合并字符串
  • concat(s1, [s2, s3, …]) 合并字符串,若任意s为NULL,则返回NULL
  • concat_ws(x, [s1, s2, …]) 合并字符串,若x为NULL,则返回NULL,若s为NULL,则忽略
select concat(username, password) from account;
字符串插入
  • insert(s1, x, len, s2) s1为被插入的字符串,x为插入的位置(从1开始数);

​ len为插入的长度,s2为插入的字符串;

select insert(username, 3, 3, "大帅逼") from account;
字符串替换
  • replace(s1, s2, s3) 将s1中的s2替换为s3
select replace(username, "大帅逼", "大丑逼") from account;
字符串大小写转换
  • upper(s) 将s转换为全部大写
  • lower(s) 将s转换为全部小写
select upper(username) from account
字符串截取
  • left(s, n) 截取s的左边n个字符
  • right(s, n) 截取s的右边n个字符
  • substring(s, x, len) 截取字符串s的x处的往右的长度为len的字符串
select left(username, 2) from account
select substring(username, 2) from account #返回第2个字符串开始的字符串
字符串扩容填充
  • lpad(s1, len, s2) s1字符串长度变为len,左侧多余部分用s2填充
  • rpad(s1, len, s2) s1字符串长度变为len,右侧多余部分用s2填充
select lpad(username, 10, "??") from account
字符串两侧删除
  • ltrim(s) 删除s的左侧字符
  • rtrim(s) 删除s的右侧字符
  • trim(s) 删除s的两侧字符
# 删除两侧空格
select trim(username) from account
#删除两侧s字符串
select trim(s from username) from account
字符串重复生成
  • repeat(s, n) 重复生成n个s字符串并相连
select repeat(username, 3) from account
空字符串生成
  • space(n) 生成长度为n的空串
select concat(s1, space(5), s2) from account
字符串比较
  • strcpm(s1, s2)
  1. s1 == s2,返回0
  2. s1 < s2,返回-1
  3. s1 > s2,返回1
字符串定位
  • locate(s1, s2) 返回s1在s2中第一次出现的位置
字符串翻转
  • reverse(s) 翻转字符串

日期和时间函数 当前
  • curdate() 生成当前日期
  • curtime() 生成当前时间
  • localtimestamp() 生成当前时间戳
SELECt CURDATE(), CURTIME(), LOCALTIMESTAMP()

比较
SELECT * FROM work_hours WHERe check_date > '2022-07-01'
加减
  • date_add(日期1, INTERVAL n {year, month, day, minute, second, …}) 日期1增加n个年月日

  • datediff(日期1, 日期2) 日期1和日期2相差多少天(正负都有)

  • timediff(日期1, 日期2) 日期1和日期2相差多少时间(时分秒表示)

set @a = NOW();
set @b = DATE_ADD(@a,INTERVAL 1 year);
SELECT DATEDIFF(@a,@b)
转换
  • date_format(date, format) 将日期转化为字符串
  • str_to_date(str, format) 将字符串转化为日期
SELECT DATE_FORMAT(CURDATE(), "%y/%m/%d")
SELECT DATE_FORMAT(CURDATE(), "%y-%m-%d")
SELECT DATE_FORMAT(CURDATE(), "%y/%m/%d")
SELECT DATE_FORMAT(LOCALTIMESTAMP(), "%y/%m/%d %h-%i-%s")

  • year()
  • month()
  • day()
  • hour()
  • minute()
  • second()
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW()), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8UGNOsos-1657351980364)(https://gitlab.com/AlidoCod/uploadimage/-/raw/main/pictures/2022/07/9_15_8_30_image-20220709150830033.png)]


数学函数
  • abs(x) 求x的绝对值
  • ceiling(x) x向上取整
  • floor(x) x向下取整
  • round(x, 精度) x取四舍五入,遵循小数点精度
  • exp(x) e的x次方
  • rand() 0-1之间的随机数
  • log(x, n) 以x为底,n为值的对数
  • pi() π
  • power(x, n) x的n次方
  • sqrt(x) x的平方根
  • sin(x) cos(x) tan(x) 三角函数(貌似没有arctan这类反函数?)
SELECT ABS(-100), CEILING(1.1), FLOOR(1.1), ROUND(1.5), EXP(2), CAST(RAND()*100 AS SIGNED), LOG(4,2), PI(), POW(2,4), SQRT(4), SIN(PI())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngWRBPsZ-1657351980365)(https://gitlab.com/AlidoCod/uploadimage/-/raw/main/pictures/2022/07/9_15_15_26_image-20220709151526205.png)]

类型转换函数 隐式转换
SELECT 1+'2', CONCAt(1, '2');

显式转换
  • cast(数据 as 数据类型)

    • BINARY[(N)] :二进制字符串,转换后长度小于N个字节

    • CHAr[(N)] :字符串,转换后长度小于N个字符

    • DATE :日期

    • DATETIME :日期时间

    • DECIMAL[(M[,N])] :浮点数,M为数字总位数(包括整数部分和小数部分),N为小数点后的位数

    • SIGNED [INTEGER] :有符号整数

    • TIME :时间

    • UNSIGNED [INTEGER] :无符号整数

SELECT CAST(pi() AS SIGNED), CAST('123a456' as SIGNED)

部分流程控制函数
  • if(条件表达式, 结果1, 结果2) 即三目运算符(表达式?1:2)
  • isnull(值) true 为 1, false 为 0
SELECT IF(1 = 1, 1, 0)
SELECT ISNULL(NULL)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号