MySQL(五)函数(常用函数,聚合函数, count()...)

本文详细介绍了MySQL中的常用函数,包括数学运算、字符串函数、时间与日期函数及系统函数,并提供了实例演示。同时,讲解了聚合函数如COUNT、SUM、AVG、MAX和MIN的用法,以及COUNT(*)和COUNT(1)的区别。通过对这些函数的理解,读者能够更好地掌握MySQL数据处理和分析的技巧。

5-mysql函数

官网:MySQL :: MySQL 5.7 参考手册 :: 12.1 内置函数和运算符参考

5.1,常用函数

数学运算
-- 常用函数

-- 数学运算
select ABS(-8) -- 绝对值 8
select CEILING(9.5) -- 向上取整 10
select FLOOR(9.5)   -- 向下取整 9
select RAND() -- 返回0-1之间的随机数 0.36746780515412597
select SIGN(10) -- 负数返回-1 整数返回1   1
字符串函数
-- 字符串函数
select CHAR_LENGTH('哇哈哈哈航昂昂昂昂昂') -- 字符串长度 10
select CONCAT('你','真','帅') -- 拼接字符串 
select INSERT('我是赛亚人',1,2,'舒破') -- 替换  舒破赛亚人
select LOWER('ASssbasAA') -- 转小写字母 asssasaa
select UPPER('ASssasAA') -- 转大写字母 ASSSASAA 
select INSTR('ASssbasAA','b') -- 返回第一次出现字符串的索引 5
select REPLACE('鸡汤来咯','鸡汤','毒药') -- 替换指定字符串 毒药来咯
select SUBSTR('鸡汤来咯',3,2) -- 截取字符串(原字符串, 截取位置, 截取长度) 来咯
select REVERSE('鸡汤来咯') -- 反转字符 咯来汤鸡
时间与日期函数
-- 时间和日期
select CURRENT_DATE -- 获取当前日期
select CURDATE() -- 获取当前日期
select NOW() -- 获取当前日期 时分秒
select SYSDATE() -- 系统时间 时分秒
select LOCALTIME() -- 本地时间 时分秒
-- 年月日时分秒
select YEAR(NOW());
select MONTH(NOW());
select day(NOW());
select hour(NOW());
select minute(NOW());
select second(NOW());
系统函数
-- 系统
select SYSTEM_USER()
select USER() 获取当前用户
select VERSION() 

5.2,聚合函数(常用)

函数名称描述
count()记数
sum()求和
avg()平均数
max()最大值
min()最小值
-- 聚合函数
-- count() 统计表中记录数量
SELECT COUNT(studentname) FROM student; -- count(字段),忽略所有null值
SELECT COUNT(*) FROM student;-- count(*) ,不会忽略null值, 本质计算行数
SELECT COUNT(1) FROM student;-- count(1) ,不会忽略null值, 本质计算行数

SELECT SUM(studentresult) 总和 FROM result;
SELECT AVG(studentresult) 平均分 FROM result;
SELECT MAX(studentresult) 最高分 FROM result;
SELECT MIN(studentresult) 最低分 FROM result;
cout(1)和count(*)的区别
执行结果:

count(*)count(1)都不会去过滤null值,但count(列名)会去过滤null值。

执行效率:

如果表中存在主键,count(主键列名)效率最高

百度知道回答:

count(1),其实就是计算一共有多少符合条件的行。
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.。
同理,count(2),也可以,得到的值完全一样,count(‘x’),count(‘y’)都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

MySQL 中的聚合函数用于对一组值执行计算,并返回单个值。常见的聚合函数包括 `AVG()`、`COUNT()`、`MAX()`、`MIN()` 和 `SUM()` 等。 ### AVG() `AVG()` 函数用于计算一组值的平均值。例如,要计算每个部门的平均工资,可以使用以下查询: ```sql SELECT department_id, AVG(salary) FROM employees GROUP BY department_id; ``` 需要注意的是,不能在 `WHERE` 子句中直接使用 `AVG()` 进行过滤,而应该使用 `HAVING` 子句来处理包含分组统计函数的条件 [^1]。 ### COUNT() `COUNT()` 函数用于计算行数或非 NULL 值的数量。例如,要计算员工总数,可以使用以下查询: ```sql SELECT COUNT(*) FROM employees; ``` ### MAX() 和 MIN() `MAX()` 和 `MIN()` 函数分别用于找出一组值中的最大值和最小值。例如,要查询公司员工工资的最大值和最小值,可以使用以下查询: ```sql SELECT MAX(salary), MIN(salary) FROM employees; ``` ### SUM() `SUM()` 函数用于计算一组值的总和。例如,要计算所有员工的工资总和,可以使用以下查询: ```sql SELECT SUM(salary) FROM employees; ``` ### HAVING vs WHERE `HAVING` 和 `WHERE` 并不是互相排斥的,可以在一个查询里面同时使用 `WHERE` 和 `HAVING`。包含分组统计函数的条件用 `HAVING`,普通条件用 `WHERE`。这样既利用了 `WHERE` 条件的高效快速,又发挥了 `HAVING` 可以使用包含分组统计函数的查询条件的优点 [^2]。 ### 示例查询 要查询公司员工工资的最大值、最小值、平均值和总和,可以使用以下查询: ```sql SELECT MAX(salary), MIN(salary), AVG(salary), SUM(salary) FROM employees; ``` 这些聚合函数在数据分析中非常有用,可以帮助快速获取数据集的关键统计信息。使用 `HAVING` 子句可以进一步筛选分组后的结果,而 `WHERE` 子句则用于在分组前进行数据过滤 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值