MySQL函数大全

1.& 按位和

结果类型取决于参数是否 评估为二进制字符串或数字:

当参数具有 二进制字符串类型,其中至少有一个不是 十六进制文本、位文本或文本。数值求值 否则发生,参数转换为无符号 根据需要使用 64 位整数。NULL

二进制字符串计算生成 与参数长度相同。如果参数有 长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。数值计算产生无符号 64 位整数。

mysql> select 5 & 8;
+-------+
| 5 & 8 |
+-------+
|     0 |
+-------+

2.> 大于运算符

mysql> select 5 > 8;
+-------+
| 5 > 8 |
+-------+
|     0 |
+-------+

3.>> 位右移

mysql> select 5 >> 3;
+--------+
| 5 >> 3 |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

mysql> select 5 >> 2;
+--------+
| 5 >> 2 |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

4.>= 大于或等于运算符

mysql> select 5 >= 1;
+--------+
| 5 >= 1 |
+--------+
|      1 |
+--------+

5.< 小于运算符

mysql> select 1 < 5;
+-------+
| 1 < 5 |
+-------+
|     1 |
+-------+

6.<>,!= 不等于运算符

mysql> select 2<>3;
+------+
| 2<>3 |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> select 2!=3;
+------+
| 2!=3 |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

7.<< 位左移

mysql> select 1<<1;
+------+
| 1<<1 |
+------+
|    2 |
+------+

8.<= 小于或等于运算符

mysql> select 1 <= 3;
+--------+
| 1 <= 3 |
+--------+
|      1 |
+--------+

9.<=> 空安全等于运算符

mysql> select null <=> null;
+---------------+
| null <=> null |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

mysql> select 1 <=> 1;
+---------+
| 1 <=> 1 |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

mysql> select 1 <=> 2;
+---------+
| 1 <=> 2 |
+---------+
|       0 |
+---------+
1 row in set (0.00 sec)

10.%, MOD 模运算符

mysql> select 7 % 3;
+-------+
| 7 % 3 |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

mysql> select 7 mod 3;
+---------+
| 7 mod 3 |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

11.* 乘法运算符

mysql> select 3 * 3;
+-------+
| 3 * 3 |
+-------+
|     9 |
+-------+

12.+ 加法运算符

mysql> select 3 + 3;
+-------+
| 3 + 3 |
+-------+
|     6 |
+-------+

13.- 减法运算符

mysql> select 3-5;
        -> -2

14.- 更改参数的符号(负号)

mysql> select - 2;
        -> -2

15.->

评估路径后从 JSON 列返回值;相当于 JSON_EXTRACT()

16.->>

在计算路径和取消引用后从 JSON 列返回值 结果;等效于 JSON_UNQUOTE(JSON_EXTRACT())。

17./ 除法运算符

mysql> select 9 / 3;
+--------+
| 9 / 3  |
+--------+
| 3.0000 |
+--------+

18.:= 分配值

导致用户变量位于左侧 运算符的右侧,以取其右侧的值。 右侧的值可能是文字值, 另一个存储值或任何法律表达式的变量 生成标量值,包括查询结果 (前提是此值是标量值)。您可以 在同一 SET 语句中执行多个赋值。您可以在同一作业中执行多个作业 陈述。

与 = 不同,:= 运算符永远不会被解释为比较运算符。这 表示您可以使用 := 在 任何有效的 SQL 语句(不仅仅是在 SET 语句中)为变量赋值。

mysql> select @var1, @var2;
        -> 1, NULL
mysql> select @var1, @var2 := @var1;
        -> 1, 1
mysql> select @var1, @var2;
        -> 1, 1

19.= 赋值

作为 SET 语句的一部分,或作为 UPDATE 语句中子句的一部)SET

20.= 相等运算符

mysql> select 1 = 1;
+-------+
| 1 = 1 |
+-------+
|     1 |
+-------+

21.^ 按位异或

结果类型取决于参数是否 评估为二进制字符串或数字:

当参数具有 二进制字符串类型,其中至少有一个不是 十六进制文本、位文本或文本。数值求值 否则发生,参数转换为无符号 根据需要使用 64 位整数。NULL

二进制字符串计算生成 与参数长度相同。如果参数有 长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。数值计算产生无符号 64 位整数。

mysql> select 1 ^ 0;
+-------+
| 1 ^ 0 |
+-------+
|     1 |
+-------+

22.ABS() 返回绝对值

mysql> select ABS(-1);
+---------+
| ABS(-1) |
+---------+
|       1 |
+---------+

23.ACOS() 返回反余弦值

mysql> select acos(0.75);
+--------------------+
| acos(0.75)         |
+--------------------+
| 0.7227342478134157 |
+--------------------+

24.ADDDATE() 将时间值(间隔)添加到日期值

mysql> select adddate(now(),interval 31 day);
+--------------------------------+
| adddate(now(),interval 31 day) |
+--------------------------------+
| 2023-01-11 20:23:57            |
+--------------------------------+

25.添加时间 ADDTIME()

ADDTIME(expr1,expr2)

ADDTIME() 将 expr2 添加到 expr1 并返回结果。expr1 是时间或日期时间 表达式,expr2 是一个时间 表达。如果 expr1或 expr2 为 NULLNULL

从 MySQL 8.0.28 开始,此函数的返回类型 和 SUBTIME() 函数 确定如下:

如果第一个参数是动态参数(例如在 预准备语句),返回类型为 TIME

否则,将派生函数的解析类型 从第一个参数的解析类型。

mysql> select addtime(now(),'1 1:1:1');
+--------------------------+
| addtime(now(),'1 1:1:1') |
+--------------------------+
| 2022-12-12 21:30:07      |
+--------------------------+

26.AES_ENCRYPT() 使用 AES 加密

密码短语可用于通过以下方式生成 AES 密钥 对密码进行哈希处理。例如:

 
INSERT INTO t
VALUES (1,AES_ENCRYPT('text', UNHEX(SHA2('My secret passphrase',512))));

27.AES_DECRYPT() 使用 AES 解密

mysql> SET block_encryption_mode = 'aes-256-cbc';
mysql> SET @key_str = SHA2('My secret passphrase',512);
mysql> SET @init_vector = RANDOM_BYTES(16);
mysql> SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
mysql> SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);
+-----------------------------------------------+
| AES_DECRYPT(@crypt_str,@key_str,@init_vector) |
+-----------------------------------------------+
| text                                          |
+-----------------------------------------------+

28.AND, && 逻辑和

mysql> select 5 > 1 && 1 = 1;
+----------------+
| 5 > 1 && 1 = 1 |
+----------------+
|              1 |
+----------------+

29.ANY_VALUE()

抑制ONLY_FULL_GROUP_BY值拒绝 是不是类似于try catch?

此函数对于ONLY_FULL_GROUP_BY SQL 模式下的查询很有用 已启用,适用于 MySQL 拒绝您知道的查询的情况 由于 MySQL 无法确定的原因而有效。函数 返回值和类型与返回值和 其参数的类型,但未检查函数结果 对于ONLY_FULL_GROUP_BY SQL 模式。GROUP BY

30返回最左侧字符的数值 ASCII()

返回ASCII表

mysql求补集字符 mysql补位函数_运算符

mysql> select ascii('a');
+------------+
| ascii('a') |
+------------+
|         97 |
+------------+

31.ASIN() 返回反正弦

mysql> select asin(0.5);
+--------------------+
| asin(0.5)          |
+--------------------+
| 0.5235987755982989 |
+--------------------+

32.ATAN() 返回反正切

mysql> select atan(2);
+--------------------+
| atan(2)            |
+--------------------+
| 1.1071487177940904 |
+--------------------+

33.ATAN2(), ATAN() 返回两个参数的反正切

mysql> select atan2(3),atan(1);
+--------------------+--------------------+
| atan2(3)           | atan(1)            |
+--------------------+--------------------+
| 1.2490457723982544 | 0.7853981633974483 |
+--------------------+--------------------+

34.AVG() 返回参数的平均值

select avg(score);#score是数据库中的表,里面包含分数

35.BENCHMARK() 重复执行表达式

BENCHMARK() 函数 执行表达式 expr 重复计数次数。可能是 用于计时 MySQL 处理表达式的速度。这 结果值为 ,或者对于不适当的参数,例如 a 或负重复计数。

mysql> select benchmark(10,aes_encrypt('hello world!','bye'));
+-------------------------------------------------+
| benchmark(10,aes_encrypt('hello world!','bye')) |
+-------------------------------------------------+
|                                               0 |
+-------------------------------------------------+

36.BETWEEN … AND … 值是否在值范围内

mysql> select 5 between 1 and 10, 3 between 1 and 2;
+--------------------+-------------------+
| 5 between 1 and 10 | 3 between 1 and 2 |
+--------------------+-------------------+
|                  1 |                 0 |
+--------------------+-------------------+

37.BIN()

返回包含数字的二进制表示形式的字符串

mysql> select bin('17');
+-----------+
| bin('17') |
+-----------+
| 10001     |
+-----------+

38.BINARY

将字符串转换为二进制字符串

mysql> select binary('hello world');
+----------------------------------------------+
| binary('hello world')                        |
+----------------------------------------------+
| 0x68656C6C6F20776F726C64                     |
+----------------------------------------------+

39.BIN_TO_UUID()

将二进制 UUID 转换为字符串

40.BIT_AND() —看不懂

按位返回 AND
BIT_AND(expr) [over_clause]

返回 expr 中所有位的按位。AND

结果类型取决于函数参数是否 值被评估为二进制字符串或数字:

当参数值发生二进制字符串计算 具有二进制字符串类型,并且参数不是 十六进制文本、位文本或文本。数值求值 否则发生,参数值转换为 根据需要使用无符号的 64 位整数。NULL

二进制字符串计算生成 与参数值的长度相同。如果参数值 长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。如果参数大小超过 511 字节,则会发生ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE错误。数值计算产生无符号 64 位整数。

如果没有匹配的行,BIT_AND() 返回中性 值(所有位设置为 1)的长度与 参数值。

NULL值不影响结果 除非所有值都是 .在这种情况下, 结果是一个中性值,其长度与 参数值。

41.BIT_COUNT() 返回设置的位数

mysql> select bit_count(3);
+--------------+
| bit_count(3) |
+--------------+
|            2 |
+--------------+

3是11,有两个1

42.BIT_LENGTH() 返回参数的长度(以位为单位)

mysql> select bit_length(3);
+---------------+
| bit_length(3) |
+---------------+
|             8 |
+---------------+

一个数字8位bit

43.BIT_OR() 按位返回 OR—看不懂

BIT_OR(expr) [over_clause]

返回 expr 中所有位的按位。

结果类型取决于函数参数是否 值被评估为二进制字符串或数字:

当参数值发生二进制字符串计算 具有二进制字符串类型,并且参数不是 十六进制文本、位文本或文本。数值求值 否则发生,参数值转换为 根据需要使用无符号的 64 位整数。NULL

二进制字符串计算生成 与参数值的长度相同。如果参数值 长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。如果参数大小超过 511 字节,则会发生ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE错误。数值计算产生无符号 64 位整数。

如果没有匹配的行,BIT_OR() 返回中性 值(所有位设置为 0)的长度与 参数值。

NULL值不影响结果 除非所有值都是 .在这种情况下, 结果是一个中性值,其长度与 参数值。

44.BIT_XOR() 按位返回异或—看不懂

返回所有 的按位 XOR 位在 expr。

结果类型取决于函数参数是否 值被评估为二进制字符串或数字:

当参数值发生二进制字符串计算 具有二进制字符串类型,并且参数不是 十六进制文本、位文本或文本。数值求值 否则发生,参数值转换为 根据需要使用无符号的 64 位整数。NULL

二进制字符串计算生成 与参数值的长度相同。如果参数值 长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。如果参数大小超过 511 字节,则会发生ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE错误。数值计算产生无符号 64 位整数。

如果没有匹配的行,BIT_XOR() 返回中性 值(所有位设置为 0)的长度与 参数值。

45.CAN_ACCESS_COLUMN()

仅限内部使用

46.CAN_ACCESS_DATABASE() 仅限内部使用

47.CAN_ACCESS_TABLE() 仅限内部使用

48.CAN_ACCESS_USER() 仅限内部使用

49.CAN_ACCESS_VIEW() 仅限内部使用

50.CASE 案例操作员

case when会用到

sum(case sc.c_id when 1 then sc.s_score end ) 语文

计算语文的分数情况