MySQL常见函数
一、字符函数
1.1.字符函数

1.2.大小写控制函数
这类函数改变字符的大小写

1.3.字符控制函数
函数控制字符:

注意:
TRIM()函数用于去除字符串首尾的空格或指定字符。REPLACE()函数用于替换字符串中的指定部分。
二、数学函数
| 函数作用 | 测试值 | 操作后值 |
| ROUND: 四舍五入 | ROUND(45.926,2) | 45.93 |
| TRUNCATE:截断 | SELECT TRUNCATE(23.1523,2) | 23.15 |
| MOD: 求余 | SELECT MOD(1700,200) | 100 |
三、日期函数
now:获取当前日期
SELECT NOW()
str_to_date: 将日期格式的字符转换成指定格式的日期
STR_TO_DATE('11-13-2023','%m-%d-%Y') SELECT STR_TO_DATE('11-13-2023','%m-%d-%Y')
date_format:将日期转换成字符
SELECT DATE_FORMAT('2022/12/23/','%Y年%m月%d日')
格式符号说明:

四、流程控制函数【补充】
在SQL中,虽然没有直接的IF-THEN-ELSE语句,但我们可以使用CASE语句和一些其他技巧来实现类似的条件判断和分支控制。

4.1.CASE 表达式语法
在需要使用IF-THEN-ELSE 逻辑时:

4.2.案例
案例:查询部门号为10, 20, 30 的员工信息, 若部门号为10, 则打印 其工资的1.1 倍, 20 号部门, 则打印其工资的1.2 倍, 30 号部门打印 其工资的1.3 倍数
SELECT last_name,department_id,salary, CASE department_id WHEN 10 THEN 1.1*salary WHEN 20 THEN 1.2*salary WHEN 30 THEN 1.3*salary ELSE salary END "REVISED_SALARY" FROM employees WHERE department_id IN (10,20,30)

五、其余
5.1.CONCAT 和 CAST 函数
当谈到数据库查询和数据处理时,CONCAT 和 CAST 是两个常用的 MySQL 函数。
CONCAT 函数:
- CONCAT 函数用于将多个字符串连接成一个字符串。
- 例如,CONCAT('Hello', ' ', 'World') 将返回字符串 'Hello World'。
- 在 SQL 查询中,你可以使用 CONCAT 来拼接不同列的值,或者在字符串中添加其他字符。
- 这在构建自定义文本字段、生成报告或拼接数据时非常有用。
SELECT CONCAT('hello','world')
CAST 函数:
- CAST 函数用于将一个数据类型转换为另一个数据类型。
- 例如,如果你有一个存储为字符串的数字,你可以使用 CAST 将其转换为整数或浮点数。
- 示例:
- SELECT CAST('123' AS SIGNED INTEGER); 将字符串 '123' 转换为整数。
- SELECT '123' + 0; 通过 +0 将字符串自动转换为整数。
- SELECT CONVERT('123', SIGNED); 也可以实现相同的效果。
案例:计算百分占比
SELECT CAST(123/6786 * 100 AS DECIMAL(4,2))
总之,CONCAT 用于字符串连接,而 CAST 用于数据类型转换。
5.2.SUBSTRING_INDEX函数
MySQL中的SUBSTRING_INDEX()函数用于从字符串中提取指定分隔符前或后的子字符串。它的语法如下:
SUBSTRING_INDEX(str, delim, count)
其中:
str: 要处理的字符串delim: 用作分隔符的字符串count: 要返回的子字符串的数量。如果count是正数,则返回从左边开始的第count个子字符串。如果count是负数,则返回从右边开始的第|count|个子字符串。
下面是一些使用示例:
⑴.从左边提取第2个子字符串:
SELECT SUBSTRING_INDEX('www.example.com', '.', 2); -- 输出: 'www.example'
⑵.从右边提取第2个子字符串:
SELECT SUBSTRING_INDEX('www.example.com', '.', -2); -- 输出: 'example.com'
⑶.提取文件名和扩展名:
SELECT SUBSTRING_INDEX('file.txt', '.', -1) AS extension, -- 输出: 'txt' SUBSTRING_INDEX('file.txt', '.', 1) AS filename; -- 输出: 'file'
⑷.提取URL中的域名:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('http://www.example.com/path/file.html', '/', 3), '/', -1); -- 输出: 'www.example.com'
⑸.提取薪资
SELECT SUBSTRING_INDEX('6-8千/月','千/月',1)
执行后如下:

⑹.提取最低薪资和最高薪资
薪资区间是6-8,则最低薪资是6,最高薪资是8,那么如何提取:
# 6-8 根据-切片。1取的是6 最小值 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('6-8千/月','千/月',1),'-',1) # 6-8 根据-切片。-1取的是8 最大值 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('6-8千/月','千/月',1),'-',1)
总之, SUBSTRING_INDEX()函数非常有用,可以帮助你从字符串中提取所需的子字符串。根据具体需求,可以灵活地调整count参数的正负值来获取想要的结果。

浙公网安备 33010602011771号