7.1 MySQL的函数
MySQL中提供了两种函数单行函数和多行函数
- 单行函数每一行有一个对应的输出
- 多行函数多行对应一个输出
单行函数的特点:
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以嵌套使用
- 参数可以是一列,也可以是一个值
7.2 数值函数
基本函数
函数 |
用法 |
ABS(X) |
绝对值函数 |
SIGN(X) |
符号函数,正数返回1,负数返回-1,0返回0 |
PI() |
返回圆周率的值 |
CEIL(x),CEILING(x) |
大于x的最小整数值,相当于x+1取整 |
FLOOR(x) |
小于x的最大整数值,相当于x-1取整 |
LEAST(e1,e2,e3,...) |
返回列表中的最小值 |
GREATEST(e1,e2,e3,...) |
返回列表中的最大值 |
MOD(x,y) |
x除以y的余数 |
RAND() |
返回0~1的随机数 |
RAND(x) |
带随机数种子的0~1的随机数,如果x相同,随机数相同 |
ROUND(x) |
x四舍五入结果 |
ROUND(x,y) |
x四舍五入,保留Y位小数 |
TRUNCATE(x, y) |
数字x截断为y位小数的结果 |
SQRT(x) |
返回x的平方根 |
练习:
# 基本数值函数使用
SELECT ABS(-1),SIGN(-10),PI(),CEIL(5.1),FLOOR(5.1),LEAST(1,2,3),GREATEST(1,2,3),MOD(3,2),RAND(),RAND(),RAND(0.5),RAND(0.5),ROUND(1.5),ROUND(1.66666,4),TRUNCATE(1.666666,4),SQRT(4);
角度与弧度转换函数
函数 |
用法 |
RADIANS(x) |
将角度转化为弧度 |
DEGREES(x) |
将弧度转化为角度 |
SELECT RADIANS(30),DEGREES(PI());
/*
+--------------------+---------------+
| RADIANS(30) | DEGREES(PI()) |
+--------------------+---------------+
| 0.5235987755982988 | 180 |
+--------------------+---------------+
1 row in set (0.05 sec)
*/
三角函数
函数 |
用法 |
SIN(x) |
正弦值 |
ASIN(x) |
反正弦 |
COS(x) |
余弦值 |
ACOS(x) |
反余弦值 |
TAN(x) |
正切值 |
ATAN(x) |
反正切值 |
ATAN2(x) |
两个参数的反正切 |
COT(x) |
余切值 |
正三角函数传参均为弧度
指数与对数
函数 |
用法 |
POW(x,y),POWER(x,y) |
x的y次方 |
EXP(x) |
自然底数e的x次方 |
LN(x),LOG(x) |
自然底数e为底数的x的对数 |
LOG10(x) |
返回以10为底的X的对数 |
LOG2(x) |
返回以2为底的X的对数 |
进制转换
函数 |
用法 |
BIN(x) |
x二进制 |
HEX(x) |
x的十六进制 |
OCT(x) |
x的八进制 |
CONV(x, f1, f2) |
f1进制转换成f2进制 |
7.3 字符串函数
函数 |
用法 |
ASCII(S) |
返回字符串S中的第一个字符的ASCII码值 |
CHAR_LENGTH(s) |
返回字符串数组的字符串,作用CHARACTER_LENGTH(s)相同 |
CONCAT(s1,s2,......sn) |
连接字符串 |
CONCAT_WS(x,s1,s2.....,sn) |
连接字符串,但是每个字符串之间加上x |
INSERT(str, idx, len, replacestr) |
字符串str从第idx位置开始,len个字符长的字串替换为字符串replacestr(idx从1开始的,如果超出字符串范围,返回原字符串) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.4 日期和时间函数
7.5 流程控制函数
7.6 加解密函数
7.7 MySQL信息函数
7.8 其他函数