MySQL函数应用
常用函数--数学函数
函数名 | 作用 | 示例 |
---|---|---|
ABS(x) | 返回x的绝对值 | Select abs(2); 结果2 |
FLOOR(x) | 返回小于x的最大整数值 | Select floor(1.23); 结果1 Select floor(-1.23); 结果-2 |
GEILING(x) | 返回大于x的最小整数值 | Select ceiling(1.23);结果2 |
MOD(x,y) | 返回x/y的模(余数) | Select mod(234,10];结果4 |
TRUNCATE(x,y) | 返回数字x截短为y位小数的结果 | Select truncate(1.223,1);结果: 1.2 |
ROUND(x,y) | 返回参数x的四舍五入的有y位小数的值 | Select round(1.298,1);结果1.3 |
常用函数--字符串函数
常⽤函数--⽇期时间函数
常⽤函数--系统函数
聚合函数
SQL中提供的聚合函数可以用来统计、求和、求最值等等。
聚合函数应⽤
执⾏列、⾏计数(count)
SELECT COUNT(*) FROM 表名
计算表中有多少⾏数据
SELECT COUNT(*) FROM users;
计算表中⼥⽣数目
SELECT COUNT(*) FROM users WHERE sex='⼥';
计算表中有⼯资的成员数
SELECT COUNT(salary) FROM users;
计算表中的⼯作数量
SELECT COUNT(DISTINCT job) FROM users;
计算男性用户表中⼯资合计
SELECT SUM(*) FROM users WHERE sex='男';
计算表中用户的平均年龄
SELECT AVG(age) FROM users;
计算表中用户的最⾼⼯资和最低⼯资
SELECT MAX(salary) FROM users; --最⾼
SELECT MIN(salary) FROM users; --最低
分组查询group by
- 在实际SQL应用中,经常需要进⾏分组聚合,即将查询对象按⼀定条件分组,然后对每⼀个组进⾏聚合分析。
- 创建分组是通过GROUP BY⼦句实现的。GROUP BY⼦句用于归纳信息类型,以汇总相关数据。
- GROUP BY的作用是通过⼀定的规则将⼀个数据集划分成若⼲个小的区域,然后针对若⼲个小区域进⾏数据处理。
SQL中数据可以按列名分组,搭配聚合函数⼗分实用。
SELECT 分组项1[,分组项2],分组表达式 FROM 表
WHERE 筛选条件
GROUP BY 分组项1[,分组项2]
HAVING 过滤分组
分组表达式
统计每个性别的平均年龄
SELECT sex,AVG(age) AS 平均年龄
FROM users
GROUP BY sex
分组中也可以加⼊筛选条件WHERE
统计每个班上20岁以上的学⽣⼈数
SELECT sex,COUNT(cname)
FROM users WHERE age>20
GROUP BY sex;
执⾏顺序为:WHERE过滤→分组→聚合函数。
查询每个省份的⼈数和最小年龄
SELECT province, COUNT(cname), MIN(age)
FROM users GROUP BY province
查询每个省份的男性和⼥⽣的⼈数
SELECT province,sex, COUNT(cname)
FROM users GROUP BY province,sex
Having关键字
我们希望在聚合之后执⾏过滤条件怎么办?
示例:查询每⼀个省份男⼥⽣的⼈数,同时只需要显示⼈数数量超过3⼈的记录
SELECT province, sex, COUNT(cname)
FROM users
GROUP BY province, sex
HAVING COUNT(cname)>3;
今天太阳也东升,而后西沉,早晨盛开的花儿也将凋谢;今天的太阳也西沉,而后东升,阳光照射之处遍地花开,但却已非昨日之花。