Mysql常用函数

发布于 2023-06-05  231 次阅读


目标:常用函数的用法

字符串函数

  1. CONCAT(str1, str2, ...):将多个字符串连接在一起。
  2. CONCAT_WS(separator,str1,str2,…):用指定的分割符separator连接字符串
  3. LEFT(str,len)/RIGHT(str,len):从字符串左/右边起,返回len长度的子字符串
  4. SUBSTRING(str, start, length): 返回字符串的子串。
  5. SUBSTRING_INDEX(str,delim,count):返回字符串str按delim分割的前count个字符串
  6. UPPER(str): 将字符串转换为大写。
  7. LOWER(str): 将字符串转换为小写。
  8. REPLACE(str, search, replace): 替换字符串中的子串。
  9. LENGTH(str):返回字节个数
  10. CHAR_LENGTH(str):返回字符个数
  11. FORMAT(X,D):将数字X格式化为'#,###,###.##',并舍入到D位小数
  12. LOCATE(substr,str,pos):在字符串中返回子串substr第一次出现的位置
  13. TRIM([remstr FROM] str):从字符串两端删除不需要的字符remstr

1.CONCAT

CONCAT(str1, str2, ...):将多个字符串连接在一起。

 -- CONCAT函数
SELECT CONCAT('Hello', ' ', 'World') AS result;

输出结果:Hello World

2.CONCAT_WS

CONCAT_WS(separator,str1,str2,…):用指定的分割符separator连接字符串。

 -- CONCAT_WS函数
SELECT CONCAT_WS(',','张三','李四') AS result;

输出结果:张三,李四

3.LEFT/RIGHT

LEFT(str,len)/RIGHT(str,len):从字符串左/右边起,返回len长度的子字符串

 -- LEFT函数
SELECT LEFT('www.rjomg.com',3) AS result;

输出结果:www

 -- RIGHT函数
SELECT RIGHT('www.rjomg.com',3) AS result;

输出结果:com

4.SUBSTRING

SUBSTRING(str, start, length): 返回字符串的子串。

 -- SUBSTRING函数
SELECT SUBSTRING('Hello World', 7, 5) AS result;

输出结果:World

5.SUBSTRING_INDEX

SUBSTRING_INDEX(str,delim,count):返回字符串str按delim分割的前count个字符串

 -- SUBSTRING_INDEX函数
SELECT SUBSTRING_INDEX('www.rjomg.com','.',-2) AS result;

输出结果:rjomg.com

6.UPPER

UPPER(str): 将字符串转换为大写。

 -- UPPER函数
SELECT UPPER('hello') AS result;

输出结果:HELLO

7.LOWER

LOWER(str): 将字符串转换为小写。

 -- LOWER函数
SELECT LOWER('WORLD') AS result;

输出结果:world

8.REPLACE

REPLACE(str, search, replace): 替换字符串中的子串。

 -- REPLACE函数
SELECT REPLACE('Hello World', 'World', 'Universe') AS result;

输出结果:Hello Universe

9.LENGTH

LENGTH(str):返回字节个数

 -- LENGTH函数
SELECT LENGTH('数据库') AS result;

输出结果:9

10.CHAR_LENGTH

CHAR_LENGTH(str):返回字符个数

 -- CHAR_LENGTH函数
SELECT CHAR_LENGTH('数据库') AS result;

输出结果:3

11.FORMAT

FORMAT(X,D):将数字X格式化为'#,###,###.##',并舍入到D位小数

 -- FORMAT函数
SELECT FORMAT('1234567.789',4) AS result;

输出结果:1,234,567.7890

12.LOCATE

LOCATE(substr,str,pos):在字符串中返回子串substr第一次出现的位置

 -- LOCATE函数
SELECT LOCATE('mysql常用函数-12.LOCATE') AS result;

输出结果:10

-- 配合SUBSTRING
SELECT SUBSTRING('mysql常用函数-12.LOCATE', 1, LOCATE('-','mysql常用函数-12.LOCATE'))  AS result;

输出结果:mysql常用函数-

-- 配合SUBSTRING并且在LOCATE函数后加了-1
SELECT SUBSTRING('mysql常用函数-12.LOCATE', 1, LOCATE('-','mysql常用函数-12.LOCATE')-1)  AS result;

输出结果:mysql常用函数

13.TRIM

TRIM([remstr FROM] str)

 -- TRIM函数
SELECT TRIM('    tempstr    ')  AS result;

输出结果:tempstr

-- 删除字符串里面x字符
SELECT TRIM('x' FROM 'xxxxtempstrxxxx')  AS result;

输出结果:tempstr

数值函数

  1. ABS(x): 返回一个数的绝对值。
  2. ROUND(x, d): 将数值进行四舍五入。
  3. CEIL(x): 返回不小于给定数的最小整数。
  4. FLOOR(x): 返回不大于给定数的最大整数。
  5. RAND(): 返回一个0到1之间的随机数。

1.ABS

ABS(x): 返回一个数的绝对值。

 -- ABS函数
SELECT ABS(-5) AS result;

输出结果:5

2.ROUND

ROUND(x, d): 将数值进行四舍五入。

 -- ROUND函数
SELECT ROUND(3.14159, 2) AS result;

输出结果:3.14

3.CEIL

CEIL(x): 返回不小于给定数的最小整数。

 -- CEIL函数
SELECT CEIL(4.2) AS result;

输出结果:5

4.FLOOR

FLOOR(x): 返回不大于给定数的最大整数。

 -- FLOOR函数
SELECT FLOOR(4.8) AS result;

输出结果:4

5.RAND

RAND(): 返回一个0到1之间的随机数。

 -- RAND函数
SELECT RAND() AS result;

输出结果:随机生成的一个介于0和1之间的数。

日期和时间函数

  1. NOW(): 返回当前日期和时间。
  2. DATE_FORMAT(date, format): 将日期格式化为指定的格式。
  3. DATE_ADD(date, INTERVAL expr unit): 在日期上进行加法运算。
  4. DATE_SUB(date, INTERVAL expr unit): 在日期上进行减法运算。
  5. DATEDIFF(date1, date2): 计算两个日期之间的天数差。
  6. CURDATE():返回当前日期/CURTIM():返回当前时间
  7. SEC_TO_TIME(seconds):把秒转换为时:分:秒
  8. TIME_TO_SEC(time):把时间转换成秒
  9. EXTRACT(unit FROM date):返回日期DATE指定部分
  10. UNIX_TIMESTAMP():返回UNIX时间戳
  11. FROM_UNIXTIME():把UNIX时间戳转换为日期时间

1.NOW

NOW(): 返回当前日期和时间。

 -- NOW函数
SELECT NOW() AS result;

输出结果:当前日期和时间的值。

2.DATE_FORMAT

DATE_FORMAT(date, format): 将日期格式化为指定的格式。

 -- DATE_FORMAT函数
SELECT DATE_FORMAT('2023-06-15', '%Y-%m-%d') AS result;

输出结果:2023-06-15

DATE_FORMAT(date,format) 该函数的format:

  • %Y:四位数的年份(例如:2023)
  • %y:两位数的年份(例如:23)
  • %m:两位数的月份(例如:01表示一月)
  • %d:两位数的日期(例如:01表示第一天)
  • %H:小时(00-23)
  • %i:分钟(00-59)
  • %s:秒(00-59)
  • %W:星期的完整名称(例如:Monday)
  • %w:星期的数字表示(0表示周日,1表示周一,依此类推)
  • %M:月份的完整名称(例如:January)
  • %b:月份的缩写(例如:Jan)
  • %D:日期的序数词表示(例如:1st、2nd、3rd)

3.DATE_ADD

DATE_ADD(date, INTERVAL expr unit): 在日期上进行加法运算。

 -- DATE_ADD函数
SELECT DATE_ADD('2023-06-15', INTERVAL 7 DAY) AS result;

输出结果:2023-06-22

4.DATE_SUB

DATE_SUB(date, INTERVAL expr unit): 在日期上进行减法运算。

 -- DATE_SUB函数
SELECT DATE_SUB('2023-06-15', INTERVAL 1 MONTH) AS result;

输出结果:2023-05-15

5.DATEDIFF

DATEDIFF(date1, date2): 计算两个日期之间的天数差。

 -- DATEDIFF函数
SELECT DATEDIFF('2023-06-15', '2023-05-31') AS result;

输出结果:15

6.CURDATE/CURTIME

CURDATE():返回当前日期

CURTIME():返回当前时间

 -- CURDATE函数
SELECT CURDATE() AS result;

输出结果:2023-05-15

 -- CURTIME函数
SELECT CURTIME() AS result;

输出结果:03:12:21

7.SEC_TO_TIME

SEC_TO_TIME(seconds):把秒转换为时:分:秒

 -- SEC_TO_TIME函数
SELECT SEC_TO_TIME('') AS result;

输出结果:01:00:00

8.TIME_TO_SEC

TIME_TO_SEC(time):把时间转换成秒

 -- TIME_TO_SEC函数
SELECT TIME_TO_SEC('01:00:00') AS result;

输出结果:3600

9.EXTRACT

EXTRACT(unit FROM date):返回日期DATE指定部分

 -- EXTRACT函数
SELECT EXTRACT(YEAR FROM NOW())  result;

输出结果:2023

10.UNIX_TIMESTAMP

UNIX_TIMESTAMP():返回UNIX时间戳

 -- UNIX_TIMESTAMP函数
SELECT UNIX_TIMESTAMP() AS result;

输出结果:1685950799

11.FROM_UNIXTIME

FROM_UNIXTIME():把UNIX时间戳转换为日期时间

 -- FROM_TIMESTAMP函数
SELECT FROM_UNIXTIME('1685950799') AS result;

输出结果:2023-06-05 15:39:59.000000

条件函数

  1. IF(expr, true_value, false_value): 如果表达式为真,则返回true_value,否则返回false_value。
  2. CASE WHEN condition THEN result ELSE else_result END: 根据条件进行选择性的返回结果。

1.IF

IF(expr, true_value, false_value): 如果表达式为真,则返回true_value,否则返回false_value。

 -- IF函数
SELECT IF(10 > 5, 'True', 'False') AS result;

输出结果:True

2.CASE WHEN

CASE WHEN condition THEN result ELSE else_result END: 根据条件进行选择性的返回结果。

 -- CASE WHEN函数
SELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C' END AS result FROM students;

根据学生的分数,返回对应的等级。

聚合函数

  1. SUM(column): 计算指定列的总和。
  2. AVG(column): 计算指定列的平均值。
  3. COUNT(column): 计算指定列的非NULL值的数量。
  4. MAX(column): 返回指定列的最大值。
  5. MIN(column): 返回指定列的最小值。

1.SUM

SUM(column): 计算指定列的总和。

 -- SUM函数
SELECT SUM(sales) AS result FROM orders;

输出结果:指定列的总和。

2.AVG

AVG(column): 计算指定列的平均值。

 -- AVG函数
SELECT AVG(price) AS result FROM products;

输出结果:指定列的平均值。

3.COUNT

COUNT(column): 计算指定列的非NULL值的数量。

 -- COUNT函数
SELECT COUNT(*) AS result FROM customers;

输出结果:指定列的非NULL值的数量。

4.MAX

MAX(column): 返回指定列的最大值。

 -- MAX函数
SELECT MAX(age) AS result FROM users;

输出结果:指定列的最大值。

5.MIN

MIN(column): 返回指定列的最小值。

 -- MIN函数
示例:SELECT MIN(age) AS result FROM users;

输出结果:指定列的最小值。
届ける言葉を今は育ててる
最后更新于 2023-06-06