30个常见的SQL函数
一、聚合函数
- COUNT()
- 功能:用于计算表中的行数或者满足特定条件的行数。
- 示例:
- 计算表
students中的学生总数。
SELECT COUNT(*) FROM students;- 计算成绩大于80分的学生人数。
SELECT COUNT(*) FROM students WHERE score > 80; - 计算表
- SUM()
- 功能:计算指定列的数值总和。
- 示例:计算
sales表中所有订单的总金额。
SELECT SUM(order_amount) FROM sales; - AVG()
- 功能:计算指定列的平均值。
- 示例:计算
employees表中员工的平均工资。
SELECT AVG(salary) FROM employees; - MAX()
- 功能:返回指定列中的最大值。
- 示例:在
products表中查找价格最高的产品价格。
SELECT MAX(price) FROM products; - MIN()
- 功能:返回指定列中的最小值。
- 示例:在
products表中查找价格最低的产品价格。
SELECT MIN(price) FROM products;
二、字符串函数
- CONCAT()
- 功能:将两个或多个字符串连接在一起。
- 示例:将
first_name和last_name连接成一个完整的姓名。
SELECT CONCAT(first_name,' ', last_name) AS full_name FROM customers; - SUBSTRING()
- 功能:从一个字符串中提取子字符串。
- 示例:从
email列中提取用户名(假设用户名在@符号之前)。
SELECT SUBSTRING(email, 1, LOCATE('@', email)- 1) AS username FROM users; - UPPER()和LOWER()
- 功能:将字符串转换为大写或小写。
- 示例:将
product_name列中的所有字符串转换为大写。
SELECT UPPER(product_name) FROM products; - LENGTH()
- 功能:计算字符串的长度。
- 示例:计算
comments列中每个评论的长度。
SELECT LENGTH(comments) FROM reviews; - TRIM()
- 功能:去除字符串两端的空格(也可以指定要去除的其他字符)。
- 示例:去除
address列中地址字符串两端的空格。
SELECT TRIM(address) FROM customers;
三、日期和时间函数
- CURRENT_DATE()和CURRENT_TIME()
- 功能:分别返回当前日期和当前时间。
- 示例:插入当前日期到
orders表的order_date列。
INSERT INTO orders (order_date) VALUES (CURRENT_DATE()); - DATE_FORMAT()
- 功能:按照指定的格式格式化日期。
- 示例:将
birth_date列中的日期格式化为YYYY - MM - DD的形式。
SELECT DATE_FORMAT(birth_date, '%Y - %m - %d') FROM employees; - TIMESTAMPADD()
- 功能:在日期或时间戳上添加指定的时间间隔。
- 示例:在
order_date列的日期基础上添加7天。
SELECT TIMESTAMPADD(DAY, 7, order_date) FROM orders; - DATEDIFF()
- 功能:计算两个日期之间的天数差。
- 示例:计算
end_date和start_date之间的天数差。
SELECT DATEDIFF(end_date, start_date) FROM projects;
四、数学函数
- ROUND()
- 功能:将数字四舍五入到指定的小数位数。
- 示例:将
price列中的价格四舍五入到整数。
SELECT ROUND(price) FROM products; - CEIL()和FLOOR()
- 功能:
CEIL()向上取整,FLOOR()向下取整。 - 示例:
- 向上取整
quantity列中的数值。
SELECT CEIL(quantity) FROM inventory;- 向下取整
quantity列中的数值。
SELECT FLOOR(quantity) FROM inventory; - 向上取整
- 功能:
- ABS()
- 功能:返回一个数的绝对值。
- 示例:计算
profit_loss列中数值的绝对值。
SELECT ABS(profit_loss) FROM financials;
五、其他函数
- CASE WHEN
- 功能:实现条件判断,类似于编程语言中的
if - else语句。 - 示例:根据
score列的值判断学生成绩等级。
SELECT student_name, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade FROM students; - 功能:实现条件判断,类似于编程语言中的
- COALESCE()
- 功能:返回参数中的第一个非空值。
- 示例:从
phone_home、phone_work和phone_mobile列中选择第一个非空的电话号码。
SELECT COALESCE(phone_home, phone_work, phone_mobile) AS contact_phone FROM contacts; - NVL()(在Oracle中常用)
- 功能:与
COALESCE()类似,用于处理空值替换。如果第一个表达式为空,则返回第二个表达式的值。 - 示例:在Oracle中,如果
bonus为空,则返回0。
SELECT NVL(bonus, 0) FROM employees; - 功能:与
浙公网安备 33010602011771号