Mysql函数大全

这篇博客详尽地列举了MySQL中的各种函数,包括特殊符号、数学运算、日期时间处理、字符串操作、逻辑判断等多个类别,涵盖了从位运算符到日期格式转换、从数据类型转换到聚合函数等多个方面,是理解MySQL函数的全面参考资料。
摘要由CSDN通过智能技术生成

目录

(一)特殊符号

1.&        位运算符

2.>        大于

3.>>        右移

4.>=        大于等于

5.<        小于

6.<>,!=        不等于

7.<<        向左位移

8.<=        小于等于

9.<=>        NULL安全相等

10. %,MOD        取模

11. *        乘以

12.+        加

13.-        减;或者更改参数的符号

14.->        计算路径后JSON列的返回值;等效于JSON_EXTRACT()。

15.->>        计算路径并取消对结果的引用后,返回JSON列的值;等效于JSON_UNQUOTE(JSON_EXTRACT())。

16./        除号

17.   :=        赋值运算符。

18.=        等于号

19.^        按位XOR。

(二)A

1.ABS()        返回绝对值

2.ACOS()        返回X的反余弦,即余弦为X的值。

3.ADDDATE()        日期添加

4.ADDTIME()        时间添加

5.AES_DECRYPT()

6.AES_ENCRYPT()

7.AND,&&        

8.ANY_VALUE(arg)

9.ASCII()

10.ASIN()        返回X的正弦弧,即正弦值为X的值。

11.ATAN()        

12.AVG()        平均值

(三)B

1.BENCHMARK()        函数执行表达式expr重复计数次数。

2.BETWEEN...AND..        值是否在值范围内

3.BIN()        返回包含数字二进制表示的字符串

4.BIN_TO_UUID()        将二进制UUID转换为字符串

5.BINARY()        将字符串转换为二进制字符串

6.BIT_AND()        返回expr中所有位的按位AND。

7.BIT_LEBGTH()        以位为单位的参数返回长度

8.BIT_OR()        按位返回OR

9.BIT_XOR()        按位返回OR

(四)C

1.CEIL()         返回不小于参数的最小整数值

2.CHAR()        返回传递的每个整数的字符

3.CHARSET()        返回参数的字符集

4.CONCAT()        返回连接字符串

5.COUNT()        返回返回的行数计数

(五)D

1.DATABASE()        返回默认(当前)数据库名称

2.DATE()        提取日期或日期时间表达式的日期部分

3.DATE_ADD()        将时间值(间隔)添加到日期值

4.DATE_FORMAT()        字符串转换为日期格式

5.DATE_SUB()        从日期中减去时间值(间隔)

(六)E

1.ELT()        返回索引号处的字符串

2.EXP()        提高到的功率

3.EXPORT_SET()        返回一个字符串,这样,对于值位中设置的每个位,您都会得到一个on字符串,对于未设置的每一位,都会得到off字符串

4.EXTRACT()        提取日期的一部分

5.ExtractValue()        使用XPath表示法从XML字符串中提取值

(七)F

1.FIELD()        后续参数中第一个参数的索引(位置)

2.FIND_IN_SET()        第二个参数中第一个参数的索引(位置)

3.FIRST_VALUE()        窗框第一行的参数值

4.FLOOR()        返回不大于参数的最大整数值

5.FORMAT()        返回格式化为指定小数位数的数字

(八)G

1.GeomCollection()        从几何图形构建几何图形集合

2.GET_FORMAT()        返回日期格式字符串

3.GREATEST()        返回最大的参数

4.GROUP_CONCAT()        返回连接字符串

(九)H

1.HEX()        十进制或字符串值的十六进制表示

2.HOUR()        返回日期中的小时数

(十)I

1.IF()     If/else构造   

2.IFNULL()        if/else构造为空

3.IN()        值是否在一组值内

4.INET_ATON()        返回IP地址的数值

(十一)J

1.JSON_ARRAY()        创建JSON数组

2.JSON_ARRAY_APPEND()        将数据附加到JSON文档

3.JSON_ARRAY_INSERT()        插入JSON数组

4.JSON_ARRAYAGG()        将结果集作为单个JSON数组返回

5.JSON_CONTAINS()        JSON文档是否在路径处包含特定对象

(十二)L

1.LAG()        分区内滞后于当前行的行的参数值

2.LAST_DAY        返回参数的月份最后一天

3.LAST_INSERT_ID()        上一次INSERT的AUTOINCREMENT列的值

4.LAST_VALUE()        窗框最后一行的参数值

5.LCASE()        LOWER()的同义词

(十三)M

1.MAKE_SET()        返回一组逗号分隔的字符串,这些字符串设置了相应的位

2.MAKEDATE()        根据年份和日期创建日期

3.MAKETIME()        从小时、分钟、秒创建时间

4.MASTER_POS_WAIT()        阻止,直到复制副本读取并将所有更新应用到指定位置

5.MATCH()        执行全文搜索

6.MAX()        返回参数的最大值

7.MBRContains()        一个几何图形的MBR是否包含另一个几何图元的MBR

8.MBRCoveredBy()        一个MBR是否由另一个MBR覆盖

9.MBRCovers()        一个MBR是否覆盖另一个MBR

10.MBRDisjoint()        两个几何体的MBR是否不相交

11.MBREquals()        两种几何形状的MBR是否相等

12.MBRIntersects()        两个几何体的MBR是否相交

13.MBROverlaps()        两个几何体的MBR是否重叠

14.MBRTouches()        两种几何形状的MBR是否接触

15.MBRWithin()        一种几何体的MBR是否在另一种几何结构的MBR内

16.MD5()        计算MD5校验和

17.MEMBER OF()        如果第一个操作数与作为第二个操作数传递的JSON数组的任何元素匹配,则返回true(1),否则返回false(0)

18.MICROSECOND()        从参数返回微秒

19.MID()     返回从指定位置开始的子字符串

20.MIN()        返回最小值

21.MINUTE()        返回参数的分钟

22.MOD()        取余

23.MONTH()        返回日期的月份

24.MONTHNAME()        返回月份名称

25.MultiLineString()        使用Point或WKB Point参数构造MultiPoint值。

26.MultiPoint()        根据点值构造多点

27.MultiPolygon()        从多边形值构造多重多边形

(十四)N

1.NAME_CONST()        使列具有给定名称

2.NOT, !        否定值

3.NOT BETWEEN ... AND ...        值是否不在值范围内

4.NOT IN()        值是否不在一组值内

5.NOT LIKE        简单模式匹配的否定

6.NOT REGEXP        REGEXP的否定

7.NOW()        返回当前日期和时间

8.NTH_VALUE()        窗框第N行的参数值

9.NTILE()        分区内当前行的Bucket编号——详见窗口函数

10.NULLIF()        如果expr1=expr2,则返回NULL

(十五)O

1.OCT()        返回包含数字八进制表示的字符串

2.OCTET_LENGTH()        LENGTH()的同义词

3.OR, ||        逻辑“或”

4.ORD()        返回参数最左侧字符的字符代码

(十六)P

1.PERCENT_RANK()        百分比等级值

2.PERIOD_ADD()        将期间添加到年月

3.PERIOD_DIFF()        返回期间之间的月数

4.PI()        返回π的值

5.Point()        从坐标构建点

6.Polygon()        从LineString参数构造多边形

7.POSITION()        LOCATE()的同义词

8.POW()        将引发的参数返回到指定的幂

9.POWER()        将引发的参数返回到指定的幂

10.PS_CURRENT_THREAD_ID()        当前线程的性能架构线程ID

11.PS_THREAD_ID()        给定线程的性能架构线程ID

(十七)Q

1.QUARTER()        从日期参数返回季度

2.QUOTE()        转义在SQL语句中使用的参数

(十八)R

1.RADIANS()        返回参数转换为弧度

2.RAND()        返回随机浮点值

3.RANDOM_BYTES()        返回随机字节向量

4.RANK()        当前行在其分区内的排名(带间隙)

5.REGEXP    字符串是否与正则表达式匹配    

6.REGEXP_INSTR()        匹配正则表达式的子字符串的起始索引

7.REGEXP_LIKE()        字符串是否与正则表达式匹配

8.REGEXP_REPLACE()        替换与正则表达式匹配的子字符串

9.REGEXP_SUBSTR()        返回匹配正则表达式的子字符串

10.RELEASE_ALL_LOCKS()        释放所有当前命名的锁

11.RELEASE_LOCK()        释放命名锁

12.REPEAT()        将字符串重复指定次数

13.REPLACE()        替换指定字符串的出现

14.REVERSE()        反转字符串中的字符

15.RIGHT()       返回指定的最右边的字符数

16.RLIKE        字符串是否与正则表达式匹配

17.ROLES_GRAPHML()        返回表示内存角色子图的GraphML文档

18.ROUND()        四舍五入

19.ROW_COUNT()        更新的行数

20.ROW_NUMBER()        分区内的当前行数

21.RPAD()        将字符串附加指定的次数

22.RTRIM()             删除字符串尾部空格RTRIM()

(十九)S

1.SCHEMA()        DATABASE()的同义词

2.SEC_TO_TIME()        将秒转换为“hh:mm:ss”格式

3.SECOND()       返回日期中的秒(0-59)

4.SESSION_USER()        USER()的同义词

5.SHA1(), SHA()        计算SHA-1 160位校验和

6.SHA2()        计算SHA-2校验和

7.SIGN()        返回参数的符号

8.SIN()        返回X的正弦值,其中X以弧度表示。如果X为NULL,则返回NULL。

9.SLEEP()        睡眠数秒

10.SOUNDEX()        返回soundex字符串

11.SOUNDS LIKE        比较声音

12.SOURCE_POS_WAIT()        阻止,直到复制副本读取并将所有更新应用到指定位置

13.SPACE()        返回指定空格数的字符串

14.SQRT()        返回参数的平方根

15.ST_Area()        返回多边形或多重多边形区域

16.ST_AsBinary(), ST_AsWKB()        从内部几何图形格式转换为WKB

17.ST_AsGeoJSON()        从几何图形生成GeoJSON对象    

18.ST_AsText(), ST_AsWKT()        从内部几何图形格式转换为WKT

19.ST_Buffer()        返回距几何体给定距离内的点的几何体

20.ST_Buffer_Strategy()        生成ST_Buffer()的策略选项

(二十)T

1.TAN()        返回参数的正切值

2.TIME()        提取传递的表达式的时间部分

3.TIME_FORMAT()        格式为时间

4.TIME_TO_SEC()        返回转换为秒的参数

5.TIMEDIFF()        减去时间

6.TIMESTAMP()        使用单个参数,此函数返回日期或日期时间表达式;有两个参数时,参数的总和

7.TIMESTAMPADD()        向日期时间表达式添加间隔

8.TIMESTAMPDIFF()       从日期时间表达式中减去间隔 

9.TO_BASE64()      返回转换为base-64字符串的参数  

10.TO_DAYS()        返回转换为天的日期参数

11.TO_SECONDS()        返回从0年开始转换为秒的日期或日期时间参数

12.TRIM()        删除前导空格和尾随空格

13.TRUNCATE()        截断到指定的小数位数

(二十一)U

1.UCASE()        UPPER()的同义词

2. UNCOMPRESS()        解压缩压缩的字符串

3.UNCOMPRESSED_LENGTH()         返回压缩前字符串的长度

4. UNHEX()        返回包含数字十六进制表示的字符串

5.UNIX_TIMESTAMP()        返回Unix时间戳

6.UpdateXML()        返回替换的XML片段

7.UPPER()        转换为大写

8.USER()        返回客户端提供的用户名和主机名

9.UTC_DATE()        返回当前UTC日期

10.UTC_TIME()        返回当前UTC时间

11.UTC_TIMESTAMP()        返回当前UTC日期和时间

12.UUID()        返回通用唯一标识符(UUID)

13.UUID_SHORT()        返回整数值通用标识符

14.UUID_TO_BIN()        将字符串UUID转换为二进制

(二十二)V

1.VALIDATE_PASSWORD_STRENGTH()        确定密码强度

2.VALUES()        定义INSERT期间要使用的值

3.VAR_POP()        返回总体标准方差

4.VAR_SAMP()        返回样本差异

5.VARIANCE()        返回总体标准方差

6.VERSION()        返回指示MySQL服务器版本的字符串

(二十三)W

1.WAIT_FOR_EXECUTED_GTID_SET()        等待在复制副本上执行给定的GTID。

2.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()      

3.WEEK()        返回日期的一年中的第几周

4.WEEKDAY()        返回日期的星期日

 5.WEEKOFYEAR()        返回日期的日历周(1-53)

6. WEIGHT_STRING()        返回字符串的权重字符串

(二十四)X

1.XOR()        逻辑异或

(二十五)Y

1.YEAR()        返回日期中的年份

2.YEARWEEK()        返回年份和一年中的第几周


(一)特殊符号

1.&        位运算符

2.>        大于

select 3>2; # 1 true
select 5>7; # 0 false

3.>>        右移

向右移动长(BIGINT)数字或二进制字符串。

结果类型取决于位参数是作为二进制字符串还是数字计算的:

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

二进制字符串求值生成与位参数长度相同的二进制字符串。数值计算产生无符号64位整数。

无论参数类型如何,从值末尾偏移的位都会丢失而不发出警告。特别地,如果移位计数大于或等于位参数中的位数,则结果中的所有位都是0。

4.>=        大于等于

select 3>=2; # 1

5.<        小于

select 3<2;# 0

6.<>,!=        不等于

select 3<>2;# 1
select 3!=2;# 1

7.<<        向左位移

8.<=        小于等于

select 2<=3;# 1

9.<=>        NULL安全相等

NULL安全相等。此运算符执行与=运算符类似的相等比较,但如果两个操作数都为NULL,则返回1而不是NULL,如果一个操作数为NULL,那么返回0而不是NULL。


<=>运算符等效于标准的SQL is NOT DISTINCT FROM运算符

10. %,MOD        取模

SELECT 6%2;#    0
SELECT MOD(6,2);#    0

11. *        乘以

select 2*3;#    6

12.+        加

select 2+3;#    5

13.-        减;或者更改参数的符号

select 2-3;#    -1

14.->        计算路径后JSON列的返回值;等效于JSON_EXTRACT()。

15.->>        计算路径并取消对结果的引用后,返回JSON列的值;等效于JSON_UNQUOTE(JSON_EXTRACT())。

16./        除号

select 9/3;#    3

17.   :=        赋值运算符。

使运算符左侧的用户变量取其右侧的值。右侧的值可以是文本值、存储值的另一个变量或任何产生标量值的合法表达式,包括查询结果(前提是该值是标量值)。可以在同一SET语句中执行多个赋值。可以在同一语句中执行多个赋值。
与=不同,:=运算符从不被解释为比较运算符。这意味着您可以在任何有效的SQL语句中使用:=(而不仅仅是在SET语句中)为变量赋值。

18.=        等于号

select 9=3;#    0

19.^        按位XOR。

结果类型取决于参数是以二进制字符串还是数字计算:
当参数具有二进制字符串类型,并且其中至少有一个不是十六进制文字、位文字或NULL文字时,就会发生二进制字符串求值。否则进行数值计算,根据需要将参数转换为无符号64位整数。
二进制字符串求值生成与参数长度相同的二进制字符串。如果参数长度不等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。数值计算产生无符号64位整数。
有关更多信息,请参阅本节中的介绍性讨论。


(二)A

1.ABS()        返回绝对值

select ABS(-9);#    9

2.ACOS()        返回X的反余弦,即余弦为X的值。

如果X不在-1到1的范围内,或者X为NULL,则返回NULL。

select acos(1);#    0

3.ADDDATE()        日期添加

        当使用第二个参数的INTERVAL形式调用时,ADDDATE()是DATE_ADD()的同义词。相关函数SUBDATE()是DATE_SUB()的同义词。

SELECT ADDDATE(CURDATE(),INTERVAL 1 MONTH );

4.ADDTIME()        时间添加

ADDTIME(表达式1,表达式2)
ADDTIME()将expr2添加到expr1并返回结果。expr1是时间或日期时间表达式,expr2是时间表达式。如果expr1或expr2为NULL,则返回NULL。
从MySQL 8.0.28开始,此函数和SUBTIME()函数的返回类型确定如下:
如果第一个参数是一个动态参数(例如在一个准备好的语句中),则返回类型为TIME。
否则,函数的解析类型将从第一个参数的解析类型派生。

SELECT ADDTIME('01:30:30','12:30:00');#    14:00:30

5.AES_DECRYPT()

        AES_DECRYPT(crypt_str,key_str[,init_vector][,kdf_name][,salt][,info|迭代])
此函数使用官方AES(高级加密标准)算法对数据进行解密。有关详细信息,请参阅AES_ENCRYPT()的说明。使用AES_DECRYPT()的语句对于基于语句的复制是不安全的。

6.AES_ENCRYPT()

        AES_ENCRYPT()和AES_DECRYPT。默认情况下,这些函数使用128位密钥长度实现AES。可以使用196或256位的密钥长度,如后所述。关键长度是性能和安全性之间的权衡。

7.AND,&&        

select (3>2) AND (5>7);   # 0 false
select (3>2) AND (5>4);   # 1 true

8.ANY_VALUE(arg)

        当启用ONLY_FUL_GROUP_BY SQL模式时,此函数对于GROUP BY查询非常有用,当MySQL拒绝您知道是有效的查询,原因是MySQL无法确定时。函数的返回值和类型与其参数的返回值及类型相同,但不会针对ONLY_FUL_GROUP_BY SQL模式检查函数结果。

9.ASCII()

SELECT ASCII('A');#    65

10.ASIN()        返回X的正弦弧,即正弦值为X的值。

如果X不在-1到1的范围内,或者X为NULL,则返回NULL。

11.ATAN()        

返回X的反正切值,即切线为X的值。如果X为NULL,则返回NULL

12.AVG()        平均值

SELECT student_name, AVG(test_score) FROM student GROUP BY student_name;

(三)B

1.BENCHMARK()        函数执行表达式expr重复计数次数。

它可以用来计算MySQL处理表达式的速度。结果值为0,对于不适当的参数(如NULL或负重复计数),结果值为NULL。预期用途来自mysql客户端,它报告查询执行时间

2.BETWEEN...AND..        值是否在值范围内

mysql> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;
        -> 1, 0
mysql> SELECT 1 BETWEEN 2 AND 3;
        -> 0
mysql> SELECT 'b' BETWEEN 'a' AND 'c';
        -> 1
mysql> SELECT 2 BETWEEN 2 AND '3';
        -> 1
mysql> SELECT 2 BETWEEN 2 AND 'x-3';
        -> 0

3.BIN()        返回包含数字二进制表示的字符串

        返回二进制值N的字符串表示形式,其中N是长(BIGINT)数。这相当于CONV(N,10,2)。如果N为NULL,则返回NULL。

4.BIN_TO_UUID()        将二进制UUID转换为字符串

5.BINARY()        将字符串转换为二进制字符串

mysql> SELECT 'a' = 'A';
        -> 1
mysql> SELECT BINARY 'a' = 'A';
        -> 0
mysql> SELECT 'a' = 'a ';
        -> 1
mysql> SELECT BINARY 'a' = 'a ';
        -> 0

6.BIT_AND()        返回expr中所有位的按位AND。

        结果类型取决于函数参数值是以二进制字符串还是数字计算:
        当参数值具有二进制字符串类型,并且参数不是十六进制文字、位文字或NULL文字时,会发生二进制字符串求值。否则进行数值计算,根据需要将参数值转换为无符号64位整数。
        二进制字符串求值生成与参数值长度相同的二进制字符串。如果参数值的长度不相等,则会发生ER_INVALID_BITWISE_OPERANDS_SIZE错误。如果参数大小超过511字节,则会发生ER_INVALID_BITWISE_AGGREGATE_OPERANDS_size错误。数值计算产生无符号64位整数。
        如果没有匹配的行,BIT_AND()将返回一个长度与参数值相同的中性值(所有位设置为1)。
除非所有值都为NULL,否则NULL值不会影响结果。在这种情况下,结果是一个长度与参数值相同的中性值。

7.BIT_LEBGTH()        以位为单位的参数返回长度

8.BIT_OR()        按位返回OR

9.BIT_XOR()        按位返回OR


(四)C

1.CEIL()         返回不小于参数的最小整数值

mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
        -> -1

2.CHAR()        返回传递的每个整数的字符

mysql> SELECT CHAR(77,121,83,81,'76');
+--------------------------------------------------+
| CHAR(77,121,83,81,'76')                          |
+--------------------------------------------------+
| 0x4D7953514C                                     |
+--------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CHAR(77,77.3,'77.3');
+--------------------------------------------+
| CHAR(77,77.3,'77.3')                       |
+--------------------------------------------+
| 0x4D4D4D                                   |
+--------------------------------------------+
1 row in set (0.00 sec)

3.CHARSET()        返回参数的字符集

mysql> SELECT CHARSET('abc');
        -> 'utf8mb3'
mysql> SELECT CHARSET(CONVERT('abc' USING latin1));
        -> 'latin1'
mysql> SELECT CHARSET(USER());
        -> 'utf8mb3'

4.CONCAT()        返回连接字符串

mysql> SELECT CONCAT('My', 'S', 'QL');
        -> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
        -> NULL
mysql> SELECT CONCAT(14.3);
        -> '14.3'

5.COUNT()        返回返回的行数计数

mysql> SELECT student.student_name,COUNT(*)
       FROM student,course
       WHERE student.student_id=course.student_id
       GROUP BY student_name;

(五)D

1.DATABASE()        返回默认(当前)数据库名称

SHOW DATABASES;

2.DATE()        提取日期或日期时间表达式的日期部分

mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

3.DATE_ADD()        将时间值(间隔)添加到日期值

4.DATE_FORMAT()        字符串转换为日期格式

5.DATE_SUB()        从日期中减去时间值(间隔)


(六)E

1.ELT()        返回索引号处的字符串

2.EXP()        提高到的功率

返回e的值(自然对数的基数)的X次方。此函数的逆函数是LOG()(仅使用单个参数)或LN()。如果X为NULL,则此函数返回NULL。

3.EXPORT_SET()        返回一个字符串,这样,对于值位中设置的每个位,您都会得到一个on字符串,对于未设置的每一位,都会得到off字符串

4.EXTRACT()        提取日期的一部分

mysql> SELECT EXTRACT(YEAR FROM '2019-07-02');
        -> 2019
mysql> SELECT EXTRACT(YEAR_MONTH FROM '2019-07-02 01:02:03');
        -> 201907
mysql> SELECT EXTRACT(DAY_MINUTE FROM '2019-07-02 01:02:03');
        -> 20102
mysql> SELECT EXTRACT(MICROSECOND
    ->                FROM '2003-01-02 10:30:00.000123');
        -> 123

5.ExtractValue()        使用XPath表示法从XML字符串中提取值


(七)F

1.FIELD()        后续参数中第一个参数的索引(位置)

mysql> SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');
        -> 2
mysql> SELECT FIELD('Gg', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');
        -> 0

2.FIND_IN_SET()        第二个参数中第一个参数的索引(位置)

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2

3.FIRST_VALUE()        窗框第一行的参数值

mysql> SELECT
         time, subject, val,
         FIRST_VALUE(val)  OVER w AS 'first',
         LAST_VALUE(val)   OVER w AS 'last',
         NTH_VALUE(val, 2) OVER w AS 'second',
         NTH_VALUE(val, 4) OVER w AS 'fourth'
       FROM observations
       WINDOW w AS (PARTITION BY subject ORDER BY time
                    ROWS UNBOUNDED PRECEDING);
+----------+---------+------+-------+------+--------+--------+
| time     | subject | val  | first | last | second | fourth |
+----------+---------+------+-------+------+--------+--------+
| 07:00:00 | st113   |   10 |    10 |   10 |   NULL |   NULL |
| 07:15:00 | st113   |    9 |    10 |    9 |      9 |   NULL |
| 07:30:00 | st113   |   25 |    10 |   25 |      9 |   NULL |
| 07:45:00 | st113   |   20 |    10 |   20 |      9 |     20 |
| 07:00:00 | xh458   |    0 |     0 |    0 |   NULL |   NULL |
| 07:15:00 | xh458   |   10 |     0 |   10 |     10 |   NULL |
| 07:30:00 | xh458   |    5 |     0 |    5 |     10 |   NULL |
| 07:45:00 | xh458   |   30 |     0 |   30 |     10 |     30 |
| 08:00:00 | xh458   |   25 |     0 |   25 |     10 |     30 |
+----------+---------+------+-------+------+--------+--------+

4.FLOOR()        返回不大于参数的最大整数值

mysql> SELECT FLOOR(1.23), FLOOR(-1.23);
        -> 1, -2

5.FORMAT()        返回格式化为指定小数位数的数字

mysql> SELECT FORMAT(12332.123456, 4);
        -> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
        -> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
        -> '12,332'
mysql> SELECT FORMAT(12332.2,2,'de_DE');
        -> '12.332,20'

(八)G

1.GeomCollection()        从几何图形构建几何图形集合

2.GET_FORMAT()        返回日期格式字符串

Function Call Result
GET_FORMAT(DATE,'USA') '%m.%d.%Y'
GET_FORMAT(DATE,'JIS') '%Y-%m-%d'
GET_FORMAT(DATE,'ISO') '%Y-%m-%d'
GET_FORMAT(DATE,'EUR') '%d.%m.%Y'
GET_FORMAT(DATE,'INTERNAL') '%Y%m%d'
GET_FORMAT(DATETIME,'USA') '%Y-%m-%d %H.%i.%s'
GET_FORMAT(DATETIME,'JIS') '%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'ISO') '%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'EUR') '%Y-%m-%d %H.%i.%s'
GET_FORMAT(DATETIME,'INTERNAL') '%Y%m%d%H%i%s'
GET_FORMAT(TIME,'USA') '%h:%i:%s %p'
GET_FORMAT(TIME,'JIS') '%H:%i:%s'
GET_FORMAT(TIME,'ISO') '%H:%i:%s'
GET_FORMAT(TIME,'EUR') '%H.%i.%s'
GET_FORMAT(TIME,'INTERNAL') '%H%i%s'

 

3.GREATEST()        返回最大的参数

mysql> SELECT GREATEST(2,0);
        -> 2
mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
        -> 767.0
mysql> SELECT GREATEST('B','A','C');
        -> 'C'

4.GROUP_CONCAT()        返回连接字符串

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val]);

mysql> SELECT student_name,
         GROUP_CONCAT(test_score)
       FROM student
       GROUP BY student_name;

(九)H

1.HEX()        十进制或字符串值的十六进制表示

2.HOUR()        返回日期中的小时数

SELECT HOUR('12:10:30');#   12

(十)I

1.IF()     If/else构造   

2.IFNULL()        if/else构造为空

3.IN()        值是否在一组值内

4.INET_ATON()        返回IP地址的数值


(十一)J

1.JSON_ARRAY()        创建JSON数组

mysql> SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME());
+---------------------------------------------+
| JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) |
+---------------------------------------------+
| [1, "abc", null, true, "11:30:24.000000"]   |
+---------------------------------------------+

2.JSON_ARRAY_APPEND()        将数据附加到JSON文档

3.JSON_ARRAY_INSERT()        插入JSON数组

4.JSON_ARRAYAGG()        将结果集作为单个JSON数组返回

5.JSON_CONTAINS()        JSON文档是否在路径处包含特定对象


(十二)L

1.LAG()        分区内滞后于当前行的行的参数值

mysql> SELECT
         t, val,
         LAG(val)        OVER w AS 'lag',
         LEAD(val)       OVER w AS 'lead',
         val - LAG(val)  OVER w AS 'lag diff',
         val - LEAD(val) OVER w AS 'lead diff'
       FROM series
       WINDOW w AS (ORDER BY t);
+----------+------+------+------+----------+-----------+
| t        | val  | lag  | lead | lag diff | lead diff |
+----------+------+------+------+----------+-----------+
| 12:00:00 |  100 | NULL |  125 |     NULL |       -25 |
| 13:00:00 |  125 |  100 |  132 |       25 |        -7 |
| 14:00:00 |  132 |  125 |  145 |        7 |       -13 |
| 15:00:00 |  145 |  132 |  140 |       13 |         5 |
| 16:00:00 |  140 |  145 |  150 |       -5 |       -10 |
| 17:00:00 |  150 |  140 |  200 |       10 |       -50 |
| 18:00:00 |  200 |  150 | NULL |       50 |      NULL |
+----------+------+------+------+----------+-----------+

2.LAST_DAY        返回参数的月份最后一天

SELECT LAST_DAY('2021-12-08');# 2021-12-31

3.LAST_INSERT_ID()        上一次INSERT的AUTOINCREMENT列的值

4.LAST_VALUE()        窗框最后一行的参数值

5.LCASE()        LOWER()的同义词


(十三)M

1.MAKE_SET()        返回一组逗号分隔的字符串,这些字符串设置了相应的位

mysql> SELECT MAKE_SET(1,'a','b','c');
        -> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
        -> 'hello,world'
mysql> S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值