一、聚合函数
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;

5914

被折叠的 条评论
为什么被折叠?



