MySQL中常见的函数和具体使用实例说明汇总
下面是MySQL中常见的函数以及使用示例的汇总:
1. ABS():
返回一个数的绝对值。
? ?示例:SELECT ABS(-5); -- 输出结果为 5
2. CONCAT():
将两个或多个字符串连接起来。
? ?示例:SELECT CONCAT('Hello', ' ', 'World'); -- 输出结果为 "Hello World"
3. COUNT():
返回一个表中行的数量。
? ?示例:SELECT COUNT(*) FROM users; -- 返回 users 表中的行数
4. DATE_FORMAT():
将日期时间格式化为指定的格式。
? ?示例:SELECT DATE_FORMAT('2021-01-01', '%Y-%m-%d'); -- 输出结果为 "2021-01-01"
5. DAY():
返回一个日期的天份。
? ?示例:SELECT DAY('2021-01-01'); -- 输出结果为 1
6. IFNULL():
如果第一个参数不为NULL,则返回第一个参数,否则返回第二个参数。
? ?示例:SELECT IFNULL(NULL, 'Hello'); -- 输出结果为 "Hello"
7. LENGTH():
返回一个字符串的长度。
? ?示例:SELECT LENGTH('Hello'); -- 输出结果为 5
8. MAX():
返回一列中的最大值。
? ?示例:SELECT MAX(salary) FROM employees; -- 返回 employees 表中的最大薪水
9. MIN():
返回一列中的最小值。
? ?示例:SELECT MIN(salary) FROM employees; -- 返回 employees 表中的最小薪水
10. ROUND():
返回一个数四舍五入到指定的小数位数。
? ? 示例:SELECT ROUND(3.14159, 2); -- 输出结果为 3.14
11. SUBSTRING():
提取字符串的一部分。
? ? 示例:SELECT SUBSTRING('Hello World', 7); -- 输出结果为 "World"
12. UPPER():
将字符串转换为大写。
? ? 示例:SELECT UPPER('hello'); -- 输出结果为 "HELLO"
13. LOWER():
将字符串转换为小写。
? ? 示例:SELECT LOWER('WORLD'); -- 输出结果为 "world"
14. TRIM():
去除字符串两端的空格。
? ? 示例:SELECT TRIM(' Hello '); -- 输出结果为 "Hello"
15. YEAR():
返回一个日期的年份。
? ? 示例:SELECT YEAR('2021-01-01'); -- 输出结果为 2021
16. MONTH():
返回一个日期的月份。
? ? 示例:SELECT MONTH('2021-01-01'); -- 输出结果为 1
17. DAYOFWEEK():
返回一个日期的星期几。
? ? 示例:SELECT DAYOFWEEK('2021-01-01'); -- 输出结果为 6 (星期五)
18. CURDATE():
返回当前日期。
? ? 示例:SELECT CURDATE(); -- 输出结果为当前日期
19. CURTIME():
返回当前时间。
? ? 示例:SELECT CURTIME(); -- 输出结果为当前时间
20. CONCAT_WS():
将两个或多个字符串连接起来,并用指定的分隔符分隔。
? ? 示例:SELECT CONCAT_WS('-', '2021', '01', '01'); -- 输出结果为 "2021-01-01"
21. GROUP_CONCAT():
将一个列中的多个值连接成一个字符串,并用指定的分隔符分隔。
? ? 示例:SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM users; -- 输出结果为 "John, Jane, Tom"
22. SUM():
计算一列中所有值的总和。
? ? 示例:SELECT SUM(salary) FROM employees; -- 返回 employees 表中薪水总和
23. AVG():
计算一列中所有值的平均值。
? ? 示例:SELECT AVG(salary) FROM employees; -- 返回 employees 表中薪水平均值
24. LOWER():
将字符串转换为小写。
? ? 示例:SELECT LOWER('HELLO'); -- 输出结果为 "hello"
25. UPPER():
将字符串转换为大写。
? ? 示例:SELECT UPPER('world'); -- 输出结果为 "WORLD"
26. IF():
根据条件返回不同的结果。
? ? 示例:SELECT IF(score >= 60, '及格', '不及格') FROM exams; -- 返回 exams 表中成绩是否及格
27. STR_TO_DATE():
将字符串转换为日期。
? ? 示例:SELECT STR_TO_DATE('2021-01-01', '%Y-%m-%d'); -- 输出结果为日期类型的值
28. NOW():
返回当前日期和时间。
? ? 示例:SELECT NOW(); -- 输出结果为当前日期和时间
29. RAND():
返回一个0到1之间的随机数。
? ? 示例:SELECT RAND(); -- 输出结果为随机数
30. YEAR():
返回一个日期的年份。
? ? 示例:SELECT YEAR('2021-01-01'); -- 输出结果为 2021
31. MONTH():
返回一个日期的月份。
? ? 示例:SELECT MONTH('2021-01-01'); -- 输出结果为 1
32. DAY():
返回一个日期的天份。
? ? 示例:SELECT DAY('2021-01-01'); -- 输出结果为 1
33. DATEDIFF():
计算两个日期之间的天数差。
? ? 示例:SELECT DATEDIFF('2022-01-01', '2021-01-01'); -- 输出结果为 365
34. COALESCE():
返回第一个非NULL的参数。
? ? 示例:SELECT COALESCE(NULL, 1, 2, 3); -- 输出结果为 1
35. IFNULL():
如果第一个参数不为NULL,则返回第一个参数,否则返回第二个参数。
? ? 示例:SELECT IFNULL(NULL, 'Hello'); -- 输出结果为 "Hello"
36. CASE():
根据条件返回不同的结果。
? ? 示例:SELECT CASE WHEN score >= 60 THEN '及格' ELSE '不及格' END FROM exams; -- 返回 exams 表中成绩是否及格
37. CHAR_LENGTH():
返回一个字符串的字符长度。
? ? 示例:SELECT CHAR_LENGTH('Hello'); -- 输出结果为 5
38. REPLACE():
替换字符串中的指定子串。
? ? 示例:SELECT REPLACE('Hello World', 'World', 'OpenAI'); -- 输出结果为 "Hello OpenAI"
39. CONCAT_WS():
将多个字符串连接起来,并用指定的分隔符分隔。
? ? 示例:SELECT CONCAT_WS('-', '2021', '01', '01'); -- 输出结果为 "2021-01-01"
40. TRIM():
去除字符串两端的空格。
? ? 示例:SELECT TRIM(' Hello '); -- 输出结果为 "Hello"
41. LTRIM():
去除字符串左端的空格。
? ? 示例:SELECT LTRIM(' Hello'); -- 输出结果为 "Hello"
42. RTRIM():
去除字符串右端的空格。
? ? 示例:SELECT RTRIM('Hello '); -- 输出结果为 "Hello"
43. LPAD():
在字符串左侧填充指定字符。
? ? 示例:SELECT LPAD('5', 3, '0'); -- 输出结果为 "005"
44. RPAD():
在字符串右侧填充指定字符。
? ? 示例:SELECT RPAD('5', 3, '0'); -- 输出结果为 "500"
45. FIND_IN_SET():
在逗号分隔的字符串中查找指定值的位置。
? ? 示例:SELECT FIND_IN_SET('apple', 'apple,banana,orange'); -- 输出结果为 1
46. SUBSTRING_INDEX():
提取字符串指定分隔符之前或之后的部分。
? ? 示例:SELECT SUBSTRING_INDEX('www.example.com', '.', 1); -- 输出结果为 "www"
47. INSTR():
返回一个子串在字符串中的位置。
? ? 示例:SELECT INSTR('Hello World', 'World'); -- 输出结果为 7
48. LEFT():
返回字符串左侧指定长度的部分。
? ? 示例:SELECT LEFT('Hello', 3); -- 输出结果为 "Hel"
49. RIGHT():
返回字符串右侧指定长度的部分。
? ? 示例:SELECT RIGHT('Hello', 3); -- 输出结果为 "llo"
50. MID():
返回字符串指定位置和长度的部分。
? ? 示例:SELECT MID('Hello World', 7, 5); -- 输出结果为 "World"
51. LOG():
计算一个数的自然对数。
? ? 示例:SELECT LOG(10); -- 输出结果为 2.302585092994046
52. EXP():
计算以e为底的指数幂。
? ? 示例:SELECT EXP(2); -- 输出结果为 7.38905609893065
53. CEILING():
向上取整。
? ? 示例:SELECT CEILING(2.4); -- 输出结果为 3
54. FLOOR():
向下取整。
? ? 示例:SELECT FLOOR(2.9); -- 输出结果为 2
55. SIN():
计算正弦值。
? ? 示例:SELECT SIN(0); -- 输出结果为 0
56. COS():
计算余弦值。
? ? 示例:SELECT COS(0); -- 输出结果为 1
57. TAN():
计算正切值。
? ? 示例:SELECT TAN(0); -- 输出结果为 0
58. ASIN():
计算反正弦值。
? ? 示例:SELECT ASIN(0); -- 输出结果为 0
59. ACOS():
计算反余弦值。
? ? 示例:SELECT ACOS(1); -- 输出结果为 0
60. ATAN():
计算反正切值。
? ? 示例:SELECT ATAN(1); -- 输出结果为 0.7853981633974483
61. PI():
返回圆周率π的值。
? ? 示例:SELECT PI(); -- 输出结果为 3.141592653589793
62. SQRT():
计算一个数的平方根。
? ? 示例:SELECT SQRT(16); -- 输出结果为 4
63. POWER():
计算一个数的指定次幂。
? ? 示例:SELECT POWER(2, 3); -- 输出结果为 8
64. ROUND():
返回一个数四舍五入到指定的小数位数。
? ? 示例:SELECT ROUND(3.14159, 2); -- 输出结果为 3.14
65. TRUNCATE():
将一个数截断到指定的小数位数。
? ? 示例:SELECT TRUNCATE(3.14159, 2); -- 输出结果为 3.14
66. DATE_ADD():
在日期上增加指定的时间间隔。
? ? 示例:SELECT DATE_ADD('2021-01-01', INTERVAL 1 DAY); -- 输出结果为 '2021-01-02'
67. DATE_SUB():
在日期上减去指定的时间间隔。
? ? 示例:SELECT DATE_SUB('2021-01-01', INTERVAL 1 DAY); -- 输出结果为 '2020-12-31'
68. STR_TO_DATE():
将字符串转换为日期。
? ? 示例:SELECT STR_TO_DATE('2021-01-01', '%Y-%m-%d'); -- 输出结果为日期类型的值
69. DATE_FORMAT():
将日期格式化为指定的格式。
? ? 示例:SELECT DATE_FORMAT('2021-01-01', '%Y-%m-%d'); -- 输出结果为 '2021-01-01'
70. TIME_FORMAT():
将时间格式化为指定的格式。
? ? 示例:SELECT TIME_FORMAT('12:30:45', '%H:%i:%s'); -- 输出结果为 '12:30:45'
71. NOW():
返回当前日期和时间。
? ? 示例:SELECT NOW(); -- 输出结果为当前日期和时间
72. UNIX_TIMESTAMP():
返回当前日期和时间的UNIX时间戳。
? ? 示例:SELECT UNIX_TIMESTAMP(); -- 输出结果为当前时间的UNIX时间戳
73. FROM_UNIXTIME():
将UNIX时间戳转换为日期和时间。
? ? 示例:SELECT FROM_UNIXTIME(1609459200); -- 输出结果为 '2021-01-01 00:00:00'
74. INTERVAL():
用于日期和时间的间隔计算。
? ? 示例:SELECT INTERVAL 1 DAY + '2021-01-01'; -- 输出结果为 '2021-01-02'
75. GREATEST():
返回一组值中的最大值。
? ? 示例:SELECT GREATEST(1, 2, 3); -- 输出结果为 3
76. LEAST():
返回一组值中的最小值。
? ? 示例:SELECT LEAST(1, 2, 3); -- 输出结果为 1
77. IF():
根据条件返回不同的结果。
? ? 示例:SELECT IF(score >= 60, '及格', '不及格') FROM exams; -- 返回 exams 表中成绩是否及格
78. CASE WHEN():
根据条件返回不同的结果。
? ? 示例:SELECT CASE WHEN score >= 60 THEN '及格' ELSE '不及格' END FROM exams; -- 返回 exams 表中成绩是否及格
79. COALESCE():
返回第一个非NULL的参数。
? ? 示例:SELECT COALESCE(NULL, 1, 2, 3); -- 输出结果为 1
80. NULLIF():
如果两个表达式的值相等,则返回NULL,否则返回第一个表达式的值。
? ? 示例:SELECT NULLIF(10, 10); -- 输出结果为 NULL
81. CONCAT():
将多个字符串拼接在一起。
? ? 示例:SELECT CONCAT('Hello', ' ', 'World'); -- 输出结果为 'Hello World'
82. SUBSTRING():
返回字符串的子串。
? ? 示例:SELECT SUBSTRING('Hello World', 7); -- 输出结果为 'World'
83. REPLACE():
将字符串中的指定字符替换为新的字符。
? ? 示例:SELECT REPLACE('Hello World', 'World', 'Universe'); -- 输出结果为 'Hello Universe'
84. CHAR_LENGTH():
返回字符串的字符长度。
? ? 示例:SELECT CHAR_LENGTH('Hello World'); -- 输出结果为 11
85. UPPER():
将字符串转换为大写。
? ? 示例:SELECT UPPER('hello'); -- 输出结果为 'HELLO'
86. LOWER():
将字符串转换为小写。
? ? 示例:SELECT LOWER('WORLD'); -- 输出结果为 'world'
87. TRIM():
去除字符串两端的空格。
? ? 示例:SELECT TRIM(' ?Hello World ?'); -- 输出结果为 'Hello World'
88. LEFT():
返回字符串的左边指定长度的子串。
? ? 示例:SELECT LEFT('Hello World', 5); -- 输出结果为 'Hello'
89. RIGHT():
返回字符串的右边指定长度的子串。
? ? 示例:SELECT RIGHT('Hello World', 5); -- 输出结果为 'World'
90. RTRIM():
去除字符串右边的空格。
? ? 示例:SELECT RTRIM('Hello World ?'); -- 输出结果为 'Hello World'
91. LTRIM():
去除字符串左边的空格。
? ? 示例:SELECT LTRIM(' ?Hello World'); -- 输出结果为 'Hello World'
92. LENGTH():
返回字符串的字节长度。
? ? 示例:SELECT LENGTH('Hello World'); -- 输出结果为 11
93. INSTR():
返回一个字符串在另一个字符串中第一次出现的位置。
? ? 示例:SELECT INSTR('Hello World', 'World'); -- 输出结果为 7
94. RAND():
生成一个0到1之间的随机数。
? ? 示例:SELECT RAND(); -- 输出结果为随机的小数
95. ABS():
返回一个数的绝对值。
? ? 示例:SELECT ABS(-10); -- 输出结果为 10
96. ROUND():
返回一个数的四舍五入值。
? ? 示例:SELECT ROUND(3.14159); -- 输出结果为 3
97. MOD():
返回两个数相除的余数。
? ? 示例:SELECT MOD(10, 3); -- 输出结果为 1
98. CONCAT_WS():
将多个字符串按指定的分隔符拼接在一起。
? ? 示例:SELECT CONCAT_WS(',', 'apple', 'banana', 'orange'); -- 输出结果为 'apple,banana,orange'
99. FIELD():
返回一个值在一组值中的位置。
? ? 示例:SELECT FIELD('banana', 'apple', 'banana', 'orange'); -- 输出结果为 2
100. CONNECTION_ID():
返回当前数据库连接的ID。
? ? 示例:SELECT CONNECTION_ID(); -- 输出结果为当前数据库连接的ID
101. GROUP_CONCAT():
将多行数据按指定的分隔符合并成一个字符串。
? ? 示例:SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM users; -- 将users表中的name字段按逗号分隔合并成一个字符串
102. IF():
根据条件判断返回不同的值。
? ? 示例:SELECT IF(score >= 60, '及格', '不及格') FROM students; -- 根据学生的分数判断是否及格
103. CASE():
实现条件判断和分支选择。
? ? 示例:SELECT CASE WHEN score >= 90 THEN '优秀'
? ? ? ? ? ? ? ? ? ? WHEN score >= 80 THEN '良好'
? ? ? ? ? ? ? ? ? ? WHEN score >= 60 THEN '及格'
? ? ? ? ? ? ? ? ? ? ELSE '不及格' END
? ? ? ? ? ?FROM students; -- 根据学生的分数返回对应的评级
104. DATE_FORMAT():
将日期格式化为指定的字符串形式。
? ? 示例:SELECT DATE_FORMAT(birthday, '%Y-%m-%d') FROM users; -- 将用户的生日按年月日格式化
105. NOW():
返回当前的日期和时间。
? ? 示例:SELECT NOW(); -- 返回当前的日期和时间
106. CURDATE():
返回当前的日期。
? ? 示例:SELECT CURDATE(); -- 返回当前的日期
107. CURTIME():
返回当前的时间。
? ? 示例:SELECT CURTIME(); -- 返回当前的时间
108. DATE_ADD():
对日期进行加法运算。
? ? 示例:SELECT DATE_ADD(birthday, INTERVAL 1 YEAR) FROM users; -- 将用户的生日加上1年
109. DATE_SUB():
对日期进行减法运算。
? ? 示例:SELECT DATE_SUB(birthday, INTERVAL 1 YEAR) FROM users; -- 将用户的生日减去1年
110. DATEDIFF():
计算两个日期之间的天数差。
? ? 示例:SELECT DATEDIFF('2022-01-01', '2021-01-01'); -- 计算2021年1月1日和2022年1月1日之间的天数差
111. STR_TO_DATE():
将字符串解析为日期。
? ? 示例:SELECT STR_TO_DATE('2022-01-01', '%Y-%m-%d'); -- 将字符串解析为日期形式
112. YEAR():
返回日期的年份部分。
? ? 示例:SELECT YEAR('2022-01-01'); -- 返回日期的年份部分
113. MONTH():
返回日期的月份部分。
? ? 示例:SELECT MONTH('2022-01-01'); -- 返回日期的月份部分
114. DAY():
返回日期的天份部分。
? ? 示例:SELECT DAY('2022-01-01'); -- 返回日期的天份部分
115. HOUR():
返回时间的小时部分。
? ? 示例:SELECT HOUR('12:34:56'); -- 返回时间的小时部分
116. MINUTE():
返回时间的分钟部分。
? ? 示例:SELECT MINUTE('12:34:56'); -- 返回时间的分钟部分
117. SECOND():
返回时间的秒数部分。
? ? 示例:SELECT SECOND('12:34:56'); -- 返回时间的秒数部分
118. WEEKDAY():
返回日期的星期几。
? ? 示例:SELECT WEEKDAY('2022-01-01'); -- 返回日期对应的星期几,0表示星期一,6表示星期天
119. COUNT():
计算某列的非NULL值的数量。
? ? 示例:SELECT COUNT(*) FROM users; -- 计算users表中记录的数量