MySQL函数(上)

在MySQL使用中,面对不同的场景会使用到各种函数,众多函数一次性记完比较困难,以下从:MySQL 函数 | 菜鸟教程 (runoob.com)整理并归纳了大多数函数的功能和使用方法,方便需要的时候查阅。

一、字符串函数

字符串函数大致可分为字符串位置处理和字符串修改处理两大类

- 字符串修改

1.CONCAT(s1,s2...sn)
描述:字符串 s1,s2 等多个字符串合并为一个字符串
实例:合并多个字符串
SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook");
输出:SQL Runoob Gooogle Facebook

2.CONCAT_WS(x, s1,s2...sn)
描述:同 CONCAT(s1,s2,...) 函数,但是每个字符串之间要加上 x,x 可以是分隔符
实例:合并多个字符串,并添加分隔符:
SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!");
输出:SQL-Tutorial-is-fun!

3.INSERT(s1,x,len,s2)
描述:字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
实例:从字符串第一个位置开始的 6 个字符替换为 runoob:
SELECT INSERT("google.com", 1, 6, "runoob");
输出:runoob.com

4.REPLACE(s,s1,s2)
描述:将字符串 s2 替代字符串 s 中的字符串 s1
实例:将字符串 abc 中的字符 a 替换为字符 x:
SELECT REPLACE('abc','a','x');
输出:xbc

5.LPAD(s1,len,s2)
描述:在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len
实例:将字符串 xx 填充到 abc 字符串的开始处:
SELECT LPAD('abc',5,'xx');
输出:xxabc

6.MID(s,start,lenth) / SUBSTR(s, start, length) / SUBSTRING(s, start, length)
描述:从字符串 s 的 start 位置截取长度为 lenth 的子字符串
实例:从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:
SELECT MID("RUNOOB", 2, 3); / SELECT SUBSTR("RUNOOB", 2, 3); / SELECT SUBSTRING("RUNOOB", 2, 3);
输出:UNO

7.RIGHT(s,n)
描述:返回字符串 s 的后 n 个字符
实例:返回字符串 runoob 的后两个字符:
SELECT RIGHT('runoob',2);
输出:ob

8.REPEAT(s,n)
描述:将字符串 s 重复 n 次
实例:将字符串 runoob 重复三次:
SELECT REPEAT('runoob',3);
输出:runoobrunoobrunoob

9.FORMAT(x,n)
描述:函数可以将数字 x 进行格式化 "#,###.##", 将 x 保留到小数点后 n 位,最后一位四舍五入。
实例:格式化数字 "#,###.##" 形式:
SELECT FORMAT(250500.5634, 2);
输出:250,500.56

10.RPAD(s1,len,s2)
描述:在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
实例:将字符串 xx 填充到 abc 字符串的结尾处:
SELECT RPAD('abc',5,'xx');
输出:abcxx

11.REVERSE(s)
描述:将字符串s的顺序反过来
实例:将字符串 abc 的顺序反过来:
SELECT REVERSE('abc');
输出:cba

12.LCASE(s) / LOWER(s)
描述:将字符串 s 的所有字母变成小写字母
实例:字符串 RUNOOB 转换为小写:
SELECT LCASE('RUNOOB'); / SELECT LOWER('RUNOOB');
输出:runoob

13.UCASE(s) / UPPER(s)
描述:将字符串转换为大写
实例:将字符串 runoob 转换为大写:
SELECT UCASE("runoob"); / SELECT UPPER("runoob");
输出:RUNOOB

14.LTRIM(s)
描述:去掉字符串 s 开始处的空格
实例:去掉字符串 RUNOOB开始处的空格:
SELECT LTRIM("    RUNOOB") ;
输出:RUNOOB

15.RTRIM(s)
描述:去掉字符串 s 结尾处的空格
实例:去掉字符串 RUNOOB 的末尾空格:
SELECT RTRIM("RUNOOB     ");
输出:RUNOOB

16.TRIM(s)
描述:去掉字符串 s 开始和结尾处的空格
实例:去掉字符串 RUNOOB 的首尾空格:
SELECT TRIM('    RUNOOB    ');
输出:RUNOOB

17.SPACE(n)
描述:返回 n 个空格
实例:返回 5 个空格:
SELECT SPACE(5);

18.STRCMP(s1,s2)
描述:比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
实例:比较字符串:
SELECT STRCMP("runoob", "runoob");
输出:0

- 字符串位置

19.CHAR_LENGTH(s) / CHARACTER_LENGTH(s)
描述:返回字符串 s 的字符数
实例:返回字符串 RUNOOB 的字符数
SELECT CHAR_LENGTH("RUNOOB"); / SELECT CHARACTER_LENGTH("RUNOOB");
输出:6

20.FIELD(s,s1,s2...)
描述:返回第一个字符串 s 在字符串列表(s1,s2...)中的位置
实例:返回字符串 c 在列表值中的位置:
SELECT FIELD("c", "a", "b", "c", "d", "e");
输出:3

21.LOCATE(s1,s) / POSITION(s1 IN s)
描述:从字符串 s 中获取 s1 的开始位置
实例:返回 st 在字符串 myteststring 中的位置:
SELECT LOCATE('st','myteststring'); / SELECT POSITION('st' in 'myteststring');
 输出:5

22.FIND_IN_SET(s1,s2)
描述:返回在字符串s2中与s1匹配的字符串的位置
实例:返回字符串 c 在指定字符串中的位置:
SELECT FIND_IN_SET("c", "a,b,c,d,e");
输出:3

23.LEFT(s,n)
描述:返回字符串 s 的前 n 个字符
实例:返回字符串 runoob 中的前两个字符:
SELECT LEFT('runoob',2);
输出:ru

24.ASCII(s)
描述:返回字符串 s 的第一个字符的 ASCII 码。
实例:返回 CustomerName 字段第一个字母的 ASCII 码:
SELECT ASCII("A");
输出:65

二、数字函数

数字函数可分为四则运算、极值、格式化、其他运算四类

- 四则运算

1.COUNT(expression)
描述:返回查询的记录总数,expression 参数是一个字段或者 * 号
实例:返回 Products 表中 products 字段总共有多少条记录:
SELECT COUNT(ProductID) FROM Products;

2.SUM(expression)
描述:返回指定字段的总和
实例:计算 OrderDetails 表中字段 Quantity 的总和:
SELECT SUM(Quantity) FROM OrderDetails;

3.AVG(expression)
描述:返回一个表达式的平均值,expression 是一个字段
实例:返回 Products 表中Price 字段的平均值:
SELECT AVG(Price) FROM Products;

4.n DIV m
描述:整除,n 为被除数,m 为除数
实例:计算 10 除于 5:
SELECT 10 DIV 5;
输出:2

5.MOD(x,y)
描述:返回 x 除以 y 以后的余数 
实例:5 除于 2 的余数:
SELECT MOD(5,2);
输出:1

- 极值

6.GREATEST(expr1, expr2, expr3, ...)
描述:返回列表中的最大值
实例1:返回以下数字列表中的最大值:
SELECT GREATEST(3, 12, 34, 8, 25);
输出:34
实例2:返回以下字符串列表中的最大值:
SELECT GREATEST("Google", "Runoob", "Apple");
输出:Runoob

7.MAX(expression)
描述:返回字段 expression 中的最大值
实例:返回数据表 Products 中字段 Price 的最大值:
SELECT MAX(Price) FROM Products;

8.LEAST(expr1, expr2, expr3, ...)
描述:返回列表中的最小值
实例1:返回以下数字列表中的最小值:
SELECT GREATEST(3, 12, 34, 8, 25);
输出:3
实例2:返回以下字符串列表中的最小值:
SELECT LEAST("Google", "Runoob", "Apple");
输出:Apple

9.MIN(expression)
描述:返回字段 expression 中的最小值
实例:返回数据表 Products 中字段 Price 的最小值:
SELECT MIN(Price) FROM Products;

- 格式化

10.ROUND(x [,y])
描述:返回离 x 最近的整数,可选参数 y 表示要四舍五入的小数位数,如果省略,则返回整数。
实例1:返回整数
SELECT ROUND(1.23456);
输出:1
实例2:返回两位小数
SELECT ROUND(345.156, 2);
输出:345.16

11.TRUNCATE(x,y)
描述:返回数值 x 保留到小数点后 y 位的值(不进行四舍五入)
实例:返回3位小数
SELECT TRUNCATE(1.23456,3);
输出:1.234

12.CEIL(x) / CEILING(x)
描述:返回大于或等于 x 的最小整数
实例:SELECT CEIL(1.5); / SELECT CEILING(1.5);
输出:2

13.FLOOR(x)
描述:返回小于或等于 x 的最大整数
实例:小于或等于 1.5 的整数:
SELECT FLOOR(1.5);
输出:1

14.SIGN(x)
描述:返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1 
实例:返回 -10 的符号
SELECT SIGN(-10);
输出:-1

15.ABS(x)
描述:返回 x 的绝对值 
实例:返回 -2 的绝对值:
SELECT ABS(-2);
输出:2

- 其他运算

16.RAND()
描述:返回 0 到 1 的随机数
实例:SELECT RAND();
输出:0.93099315644334

17.POW(x,y) / POWER(x,y)
描述:返回 x 的 y 次方
实例:2 的 3 次方:
SELECT POWER(2,3); / SELECT POWER(2,3);
输出:8

18.EXP(x)
描述:返回 e 的 x 次方 
实例:计算 e 的三次方:
SELECT EXP(3);
输出:20.085536923188

19.SIN(x) / ASIN(x) / COS(x) / ACOS(x) / ...
描述:求 x 数值的正弦值 / 反正弦值 / 余弦值 / 反余弦值 / ...(单位为弧度)
实例:SELECT SIN(0.25); / SELECT ASIN(0.25); / SELECT COS(0.25); / SELECT ACOS(0.25);

20.DEGREES(x)
描述:将弧度转换为角度 
实例:将弧度 3.1415926535898 转换为角度
SELECT DEGREES(3.1415926535898);
输出:180

21.RADIANS(x)
描述:将角度转换为弧度
实例:180 度转换为弧度:
SELECT RADIANS(180);
输出:3.1415926535898

MySQL函数(下):MySQL函数(下)-CSDN博客其中包括
三、日期函数
四、高级函数
五、MySQL 8.0 版本新增的一些常用函数

PS:本文为个人总结,如有错误欢迎指出。

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值