【MySQL】常用函数

一、聚合函数

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值