目标:常用函数的用法
字符串函数
- CONCAT(str1, str2, ...):将多个字符串连接在一起。
- CONCAT_WS(separator,str1,str2,…):用指定的分割符separator连接字符串
- LEFT(str,len)/RIGHT(str,len):从字符串左/右边起,返回len长度的子字符串
- SUBSTRING(str, start, length): 返回字符串的子串。
- SUBSTRING_INDEX(str,delim,count):返回字符串str按delim分割的前count个字符串
- UPPER(str): 将字符串转换为大写。
- LOWER(str): 将字符串转换为小写。
- REPLACE(str, search, replace): 替换字符串中的子串。
- LENGTH(str):返回字节个数
- CHAR_LENGTH(str):返回字符个数
- FORMAT(X,D):将数字X格式化为'#,###,###.##',并舍入到D位小数
- LOCATE(substr,str,pos):在字符串中返回子串substr第一次出现的位置
- 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
数值函数
- ABS(x): 返回一个数的绝对值。
- ROUND(x, d): 将数值进行四舍五入。
- CEIL(x): 返回不小于给定数的最小整数。
- FLOOR(x): 返回不大于给定数的最大整数。
- 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之间的数。
日期和时间函数
- NOW(): 返回当前日期和时间。
- DATE_FORMAT(date, format): 将日期格式化为指定的格式。
- DATE_ADD(date, INTERVAL expr unit): 在日期上进行加法运算。
- DATE_SUB(date, INTERVAL expr unit): 在日期上进行减法运算。
- DATEDIFF(date1, date2): 计算两个日期之间的天数差。
- CURDATE():返回当前日期/CURTIM():返回当前时间
- SEC_TO_TIME(seconds):把秒转换为时:分:秒
- TIME_TO_SEC(time):把时间转换成秒
- EXTRACT(unit FROM date):返回日期DATE指定部分
- UNIX_TIMESTAMP():返回UNIX时间戳
- 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
条件函数
- IF(expr, true_value, false_value): 如果表达式为真,则返回true_value,否则返回false_value。
- 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;
根据学生的分数,返回对应的等级。
聚合函数
- SUM(column): 计算指定列的总和。
- AVG(column): 计算指定列的平均值。
- COUNT(column): 计算指定列的非NULL值的数量。
- MAX(column): 返回指定列的最大值。
- 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;
输出结果:指定列的最小值。
Comments NOTHING