Mysql 中各种各样的函数
学习重点
根据用途,函数大致分为算术函数,字符串函数,日期函数,转换函数和聚合函数
函数的种类很多,无需全部记住,只要记住代表性的就可以了,其他的可以使用的时候查询
函数的定义和种类
- 所谓函数就是输入某一值得到相应的输出结果的功能,输入值称为参数,输出值称为返回值
函数的种类:
算术函数(用来进行数据计算的函数)
字符串函数(用来进行字符串操作的函数)
日期函数(用来进行日期操作的函数)
转换函数(用来转换数据类型和值的函数)
聚合函数(用来进行数据聚合的函数)
算术函数
+(加法)
-(减法)
*(乘法)
/(除法)
ABS–绝对值
- 语法
ABS(数值)
- 实例化
SELECT m,ABS(m) as abs_col FROM SampleMath;
要是 NULL 它返回的就是 NULL
MOD 求余
- 语法 MOD
MOD(被除数,除数)
例如 MOD(7,3) 的结果也是 1
- 实例化
SELECT n,p MOD(n,p) AS mod_col FROM SampleMath
ROUND – 四舍五入
- 语法
ROUND(对象数值,保留的小数的位数)
例如 ROUND(3.256,2) 意思就是 3.256 保留小数点后两位,所以最后结果是 3.26
- 实例化
SELECT FROM m,n,ROUND(m,n) as round_col FROM SampleMath;
字符串函数
- CONCAT 两个字符串拼接在一起
SELECT str1,str2,CONCAT(str1,str2) AS str_concat FROM SampleMath
- 结果
str1 | str2 | str_concat |
---|---|---|
生活 | 充满了意外 | 生活充满了意外 |
LENGTH 字符串长度
- LENGTH(字符串)
要是想知道字符串包含多少个字符时,可以使用 LENGTH(长度)函数
SELECT str1, LENGTH(str1) AS len_str FROM SampleMath
- 执行结果
str1 | len_str |
---|---|
opx | 3 |
这里特别注意的就是字节 因为 1 个汉字占了 2 个字节,所以比如说生活 它的长度就是 4
LOWER 小写转换
语法
LOWER(字符串)
LOWER 只针对英文字母,它将参数中的字符串都转换为小写,该函数不适用于英文以外的字母场合
实例
SELECT STR1 LOWER(STR2) AS low_str FROM SampleMath;
UPPER –大写转换
语法
UPPER(字符串)
实例化
SELECT str1,UPPER(str1) AS up_str FROM SampleMath;
- 结果
str1 | up_str |
---|---|
abc | ABC |
REPLACE – 字符串的替换
语法
REPLACE(对象字符串,替换的字符串,替换后的字符串)
使用 REPLACE 函数可以将字符串的一部分替换为其他的字符串
实例化
SELECT str1,str2,str3,REPLACE(str1,str2,str3) AS rep_str FROM SampleMath;
- 结果
str1 | str2 | str3 | rep_str |
---|---|---|---|
abc 太郎 | abc | ABC | ABC 太郎 |
SUBSTRING —字符串的截取
语法
SUBSTRING(对象字符串 FROM 截取的开始位置 FOR 截取的字符串)
实例化
- 从字符串的第三位开始截取,截取两个字符 ,mysql 开始一直都是 1 没有 0
SELECT str1, SUBSTRING(str1 FROM 3 FOR 2) AS sub_str FROM SampleMath;
- 结果
str1 | sub_str |
---|---|
abcdefg | cd |
日期函数
CURRENT_DATE —当前日期
SELECT CURRENT_DATE
CURRENT_TIME —当前时间
SELECT CURRENT_TIME
CURRENT_TIMESTAMP —当前日期和时间
SELECT CURRENT_TIMESTAMP
EXTRACT –截取日期元素
EXTRACT(日期元素 FROM 日期)
- 实例化
SELECT CURRENT_TIMESTAMP, EXTRACT(Year FROM CURRENT_TIMESTAMP) AS year;
转换函数
CAST 函数数据类型转换
- 语法
CAST(转换前的值 AS 想要转换的数据类型)
- 实例化
SELECT CAST('0001' AS SIGNED INTEGER) AS int_col;
再比如
SELECT CAST('2009-12-14' AS DATE) AS date_col;
COALESCE –将 NULL 转换为其他值,这样避免运算的时候报错
- 它会从左向右 找到不是 NULL 的值
COALESCE(数据1,数据2,...)
- 实例化
SELECT COALESCE(NULL, 1) AS col_1,
COALESCE(NULL, 'test', NULL) AS col_2,
COALESCE(NULL, NULL, '2009-11-01') AS col_3;
- 结果
col_1 | col_2 | col_3 |
---|---|---|
1 | test | 2009-11-01 |