MySQL函数:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
第27行: 第27行:


=== 函数 ===
=== 函数 ===
==== 字符串函数 ====
字符串连接、字符串比较、大小写转换、获取子串等。
{| class="wikitable"
|Name
|Description
|-
|CHAR_LENGTH(s)
|返回字符串s的字符数
|-
|LENGTH(s)
|返回字符串s的长度
|-
|CONCAT(s1, s2, .....)
|将字符串s1, s2等多个字符串合并为一个字符串
|-
|CONCAT_WS(x, s1, s2, ....)
|同COUCAT(s1, s2, .....),但是每个字符串之间要加上x
|-
|INSERT(s1, x, len, s2)
|将字符串s2替换s1的x位置开始长度为len的字符串
|-
|UPPER(s), UCASE(s)
|讲字符串s的所有字符都变成大写字母
|-
|LOWER(s), LCASE(s)
|讲字符串s的所有字符都变成小写字母
|-
|LEFT(s, n)
|返回字符串s的前n个字符
|-
|RIGHT(s, n)
|返回字符串s的后n个字符
|-
|LPAD(s1, len, s2)
|字符串s2来填充s1的开始处,使字符串长度达到len
|-
|RPAD(s1, len, s2)
|字符串s2来填充s1的结尾处,使字符串长度达到len
|-
|LTRIM(s)
|去掉字符串s开始处的空格
|-
|RTRIM(s)
|去掉字符串s结尾处的空格
|-
|TRIM(s)
|去掉字符串s开始处和结尾处的空格
|-
|TRIM(s1FROMs)
|去掉字符串s中开始处和结尾处的字符串s1
|-
|REPEAT(s, n)
|将字符串s重复n次
|-
|SPACE(n)
|返回n个空格
|-
|REPLACE(s, s1, s2)
|用字符串s2代替字符串s中的字符串s1
|-
|STRCMP(s1, s2)
|比较字符串s1和s2
|-
|SUBSTRING(s, n, len)
|获取从字符串s中的第n个位置开始长度为len的字符串
|-
|MID(s, n, len)
|同SUBSTRING(s, n, len)ATE(s1, s), POSTTION(s1 IN s)从字符串s中获取s1的开始位置
|-
|INSTR(s, s1)
|从字符串s中获取s1的开始位置
|-
|REVERSE(s)
|将字符串s的顺序反过来
|-
|ELT(n, s1, s2...)
|返回第n个字符串
|-
|FIELD(s, s1, s2...)
|返回第一个与字符串s匹配的字符串的位置
|-
|FIND_IN_SET(s1, s2)
|返回在字符串s2中与s1匹配的字符串的位置
|-
|MAKE_SET(x, s1, s2...)
|按x的二进制数从s1, s2......sn中选取字符串
|}
==== 数学函数 ====
绝对值函数、正弦函数、余弦函数、获取随机数等。
{| class="wikitable"
|Name
|Description
|-
|ABS(x)
|返回x的绝对值
|-
|CEIL(x), CEILING(x)
|返回大于或等于x的最小整数(向上取整)
|-
|FLOOR(x)
|返回小于或等于x的最大整数(向下取整)
|-
|RAND()
|返回0~1的随机数
|-
|RAND(x)
|返回0~1的随机数,x值相同时返回的随机数相同
|-
|SIGN(x)
|返回x的符号,x是负数、0、正数分别返回-1、0、1
|-
|PI()
|返回圆周率
|-
|TRUNCATE(x, y)
|返回数值x保留到小数点后y位的值
|-
|ROUND(x)
|返回离x最近的整数(四舍五入)
|-
|ROUND(x, y)
|保留x小数点后y位的值,但截断时要四舍五入
|-
|POW(x, y), POWER(x, y)
|返回x的y次方
|-
|SQRT(x)
|返回x的平方根
|-
|EXP(x)
|返回e的x次方
|-
|MOD(x, y)
|返回x 除以y以后的余数
|-
|LOG(x)
|返回自然对数(以e为底的对数)
|-
|LOG10(x)
|返回以10为底的对数
|-
|RADIANS(x)
|讲角度转换为弧度
|-
|DEGREES(x)
|讲弧度转换为角度
|-
|SIN(x)
|求正弦值
|-
|ASIN(x)
|求反正弦值
|-
|COS(x)
|求余弦值
|-
|ACOS(x)
|求反余弦值
|-
|TAN(x)
|求正切值
|-
|ATAN(x), ATAN(x, y)
|求反正切值
|-
|COT(x)
|求余切值
|}
==== 时间函数 ====
取当前时间、获取当前日期、返回年份、返回日期等。
==== JSON函数 ====
==== 系统信息函数 ====
获取数据库名、获取当前用户、获取数据库版本等。
==== 加密函数 ====
字符串加解密、Hash 等
==== 其他函数 ====
格式化、编码转换、类型转换、加锁、条件选择等。


=== 存储过程 ===
=== 存储过程 ===

2023年11月10日 (五) 15:51的版本

变量

用户定义的变量

是一种以@符号为前缀的变量类型。

定义
SET @var_name = value;
- OR -
SELECT @var_name := value;
- SQL -
SELECT @age_max:= MAX(age) FROM students;
使用
SELECT @var_name
SELECT * FROM students WHERE age = @maxage;

未定义变量输出NULL

局部变量

局部变量是强类型变量,作用域在声明它的存储过程块中。无 DEFAULT 子句,变量将被赋予初始值 NULL。

DECLARE i, j INT DEFAULT 0;

系统变量

MySQL 包含各种配置其操作的系统变量,每个系统变量都有一个默认值。我们可以通过在运行时使用 SET 语句动态地更改某些系统变量,使得在不停止和重新启动服务器的情况下修改系统变量。

MySQL服务器提供了许多系统变量,如GLOBAL、SESSION或MIX类型。全局变量在服务器的整个生命周期中可见,而会话变量仅在特定会话中保持活动状态。

SELECT @@key_buffer_size;

函数

字符串函数

字符串连接、字符串比较、大小写转换、获取子串等。

Name Description
CHAR_LENGTH(s) 返回字符串s的字符数
LENGTH(s) 返回字符串s的长度
CONCAT(s1, s2, .....) 将字符串s1, s2等多个字符串合并为一个字符串
CONCAT_WS(x, s1, s2, ....) 同COUCAT(s1, s2, .....),但是每个字符串之间要加上x
INSERT(s1, x, len, s2) 将字符串s2替换s1的x位置开始长度为len的字符串
UPPER(s), UCASE(s) 讲字符串s的所有字符都变成大写字母
LOWER(s), LCASE(s) 讲字符串s的所有字符都变成小写字母
LEFT(s, n) 返回字符串s的前n个字符
RIGHT(s, n) 返回字符串s的后n个字符
LPAD(s1, len, s2) 字符串s2来填充s1的开始处,使字符串长度达到len
RPAD(s1, len, s2) 字符串s2来填充s1的结尾处,使字符串长度达到len
LTRIM(s) 去掉字符串s开始处的空格
RTRIM(s) 去掉字符串s结尾处的空格
TRIM(s) 去掉字符串s开始处和结尾处的空格
TRIM(s1FROMs) 去掉字符串s中开始处和结尾处的字符串s1
REPEAT(s, n) 将字符串s重复n次
SPACE(n) 返回n个空格
REPLACE(s, s1, s2) 用字符串s2代替字符串s中的字符串s1
STRCMP(s1, s2) 比较字符串s1和s2
SUBSTRING(s, n, len) 获取从字符串s中的第n个位置开始长度为len的字符串
MID(s, n, len) 同SUBSTRING(s, n, len)ATE(s1, s), POSTTION(s1 IN s)从字符串s中获取s1的开始位置
INSTR(s, s1) 从字符串s中获取s1的开始位置
REVERSE(s) 将字符串s的顺序反过来
ELT(n, s1, s2...) 返回第n个字符串
FIELD(s, s1, s2...) 返回第一个与字符串s匹配的字符串的位置
FIND_IN_SET(s1, s2) 返回在字符串s2中与s1匹配的字符串的位置
MAKE_SET(x, s1, s2...) 按x的二进制数从s1, s2......sn中选取字符串

数学函数

绝对值函数、正弦函数、余弦函数、获取随机数等。

Name Description
ABS(x) 返回x的绝对值
CEIL(x), CEILING(x) 返回大于或等于x的最小整数(向上取整)
FLOOR(x) 返回小于或等于x的最大整数(向下取整)
RAND() 返回0~1的随机数
RAND(x) 返回0~1的随机数,x值相同时返回的随机数相同
SIGN(x) 返回x的符号,x是负数、0、正数分别返回-1、0、1
PI() 返回圆周率
TRUNCATE(x, y) 返回数值x保留到小数点后y位的值
ROUND(x) 返回离x最近的整数(四舍五入)
ROUND(x, y) 保留x小数点后y位的值,但截断时要四舍五入
POW(x, y), POWER(x, y) 返回x的y次方
SQRT(x) 返回x的平方根
EXP(x) 返回e的x次方
MOD(x, y) 返回x 除以y以后的余数
LOG(x) 返回自然对数(以e为底的对数)
LOG10(x) 返回以10为底的对数
RADIANS(x) 讲角度转换为弧度
DEGREES(x) 讲弧度转换为角度
SIN(x) 求正弦值
ASIN(x) 求反正弦值
COS(x) 求余弦值
ACOS(x) 求反余弦值
TAN(x) 求正切值
ATAN(x), ATAN(x, y) 求反正切值
COT(x) 求余切值

时间函数

取当前时间、获取当前日期、返回年份、返回日期等。

JSON函数

系统信息函数

获取数据库名、获取当前用户、获取数据库版本等。

加密函数

字符串加解密、Hash 等

其他函数

格式化、编码转换、类型转换、加锁、条件选择等。

存储过程