【MYSQL】 常用函数

目录

一、字符串函数

1. CONCAT() - 连接字符串

2. SUBSTRING() / SUBSTR() - 截取字符串

3. LENGTH() / CHAR_LENGTH() - 字符串长度

4. UPPER() / LOWER() - 大小写转换

5. TRIM() - 去除空格

二、数值函数

1. ROUND() - 四舍五入

2. CEIL() / FLOOR() - 向上/向下取整

3. ABS() - 绝对值

4. MOD() - 取模

5. RAND() - 随机数

三、日期和时间函数

1. NOW() / CURDATE() / CURTIME()

2. DATE_FORMAT() - 格式化日期

3. DATEDIFF() - 日期差

4. DATE_ADD() / DATE_SUB() - 日期加减

5. YEAR() / MONTH() / DAY() - 提取日期部分

四、聚合函数

1. COUNT() - 计数

2. SUM() - 求和

3. AVG() - 平均值

4. MAX() / MIN() - 最大/最小值

5. GROUP_CONCAT() - 分组连接

五、条件函数

1. IF() - 简单条件判断

2. CASE WHEN - 多条件判断

3. IFNULL() / COALESCE() - 处理NULL值

六、其他实用函数

1. IN() - 值列表匹配

2. LIKE - 模糊匹配

3. BETWEEN - 范围查询

4. GREATEST() / LEAST() - 最大/最小值

5. NULLIF() - 比较两个表达式


一、字符串函数

1. CONCAT() - 连接字符串

SELECT CONCAT('Hello', ' ', 'World');  -- 输出: Hello World
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

2. SUBSTRING() / SUBSTR() - 截取字符串

SELECT SUBSTRING('MySQL Tutorial', 7, 8);  -- 从第7个字符开始截取8个字符,输出: Tutorial
SELECT SUBSTR(column_name, 1, 5) FROM table_name;

3. LENGTH() / CHAR_LENGTH() - 字符串长度

SELECT LENGTH('MySQL');  -- 返回字节数(5)
SELECT CHAR_LENGTH('MySQL');  -- 返回字符数(5)

4. UPPER() / LOWER() - 大小写转换

SELECT UPPER('mysql');  -- 输出: MYSQL
SELECT LOWER('MySQL');  -- 输出: mysql

5. TRIM() - 去除空格

SELECT TRIM('  MySQL  ');  -- 输出: 'MySQL'
SELECT LTRIM('  MySQL  ');  -- 去除左边空格
SELECT RTRIM('  MySQL  ');  -- 去除右边空格

二、数值函数

1. ROUND() - 四舍五入

SELECT ROUND(123.4567, 2);  -- 输出: 123.46
SELECT ROUND(column_name, 0) FROM table_name;

2. CEIL() / FLOOR() - 向上/向下取整

SELECT CEIL(123.45);  -- 输出: 124
SELECT FLOOR(123.45); -- 输出: 123

3. ABS() - 绝对值

SELECT ABS(-123);  -- 输出: 123

4. MOD() - 取模

SELECT MOD(10, 3);  -- 输出: 1

5. RAND() - 随机数

SELECT RAND();  -- 返回0-1之间的随机数
SELECT FLOOR(RAND() * 100);  -- 返回0-99的随机整数

三、日期和时间函数

1. NOW() / CURDATE() / CURTIME()

SELECT NOW();      -- 当前日期和时间,格式: YYYY-MM-DD HH:MM:SS
SELECT CURDATE();  -- 当前日期
SELECT CURTIME();   -- 当前时间

2. DATE_FORMAT() - 格式化日期

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');  -- 输出: 2023-04-15
SELECT DATE_FORMAT(NOW(), '%H:%i:%s');  -- 输出: 14:30:45

3. DATEDIFF() - 日期差

SELECT DATEDIFF('2023-04-20', '2023-04-15');  -- 输出: 5

4. DATE_ADD() / DATE_SUB() - 日期加减

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);    -- 7天后
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- 1个月前

5. YEAR() / MONTH() / DAY() - 提取日期部分

SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());

四、聚合函数

1. COUNT() - 计数

SELECT COUNT(*) FROM employees;  -- 总行数
SELECT COUNT(DISTINCT department) FROM employees;  -- 不重复计数

2. SUM() - 求和

SELECT SUM(salary) FROM employees;

3. AVG() - 平均值

SELECT AVG(salary) FROM employees;

4. MAX() / MIN() - 最大/最小值

SELECT MAX(salary), MIN(salary) FROM employees;

5. GROUP_CONCAT() - 分组连接

SELECT department, GROUP_CONCAT(employee_name) 
FROM employees 
GROUP BY department;

五、条件函数

1. IF() - 简单条件判断

SELECT IF(salary > 5000, 'High', 'Low') AS salary_level FROM employees;

2. CASE WHEN - 多条件判断

SELECT 
    employee_name,
    CASE 
        WHEN salary < 3000 THEN 'Low'
        WHEN salary BETWEEN 3000 AND 6000 THEN 'Medium'
        ELSE 'High'
    END AS salary_level
FROM employees;

3. IFNULL() / COALESCE() - 处理NULL值

SELECT IFNULL(bonus, 0) FROM employees;  -- 如果bonus为NULL则返回0
SELECT COALESCE(bonus, salary, 0) FROM employees;  -- 返回第一个非NULL值

六、其他实用函数

1. IN() - 值列表匹配

SELECT * FROM products WHERE category_id IN (1, 3, 5);

2. LIKE - 模糊匹配

SELECT * FROM employees WHERE name LIKE 'J%';  -- J开头
SELECT * FROM employees WHERE name LIKE '%n';  -- n结尾
SELECT * FROM employees WHERE name LIKE '%er%';  -- 包含er

3. BETWEEN - 范围查询

SELECT * FROM products WHERE price BETWEEN 10 AND 100;

4. GREATEST() / LEAST() - 最大/最小值

SELECT GREATEST(10, 20, 30);  -- 输出: 30
SELECT LEAST(10, 20, 30);     -- 输出: 10

5. NULLIF() - 比较两个表达式

SELECT NULLIF(1, 1);  -- 返回NULL
SELECT NULLIF(1, 2);  -- 返回1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值