MySQL函数应用

[TOC]函数

经常使用函数--数学函数

函数名 做用 示例
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中提供的聚合函数能够用来统计、求和、求最值等等。 spa

聚合函数应⽤

执⾏列、⾏计数(count)code

SELECT COUNT(*) FROM 表名

计算表中有多少⾏数据对象

SELECT COUNT(*) FROM users;

计算表中⼥⽣数目blog

SELECT COUNT(*) FROM users WHERE sex='⼥';

计算表中有⼯资的成员数字符串

SELECT COUNT(salary) FROM users;

计算表中的⼯做数量数学

SELECT COUNT(DISTINCT job) FROM users;

计算男性用户表中⼯资合计table

SELECT SUM(*) FROM users WHERE sex='男';

计算表中用户的平均年龄class

SELECT AVG(age) FROM users;

计算表中用户的最⾼⼯资和最低⼯资im

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;