本文数据分析师必看!
上次讲了数据库和MySQL基础,这回咱们来学点MySQL最常用到的—核心查询语句。
框住的部分是本节重点
一、单表查询
SELECT 字段名 FROM 表名 WHERE 条件 [GROUP BY 字段名 HAVING 条件 ORDER BY 字段名 LIMIT 条数];
1、排序
- 单列排序
- asc升序(默认,可不写),desc降序
- 语法格式:
SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC]
- 组合排序
- 同时对多个字段进行排序, 如果第一个字段相同就按照第二个字段进行排序,以此类推。
- 比如order by 字段1,字段2 desc—代表先按照字段1升序,再按字段2降序。
2、聚合函数
#1 查询员工的总数
-- 统计表中的记录条数 使用count()
SELECT COUNT(eid) FROM emp; -- 使用某一个字段
SELECT COUNT(*) FROM emp; -- 使用 *
SELECT COUNT(1) FROM emp; -- 使用 1,与 * 效果一样
-- 下面这条SQL 得到的总条数不准确,因为count函数忽略了空值
-- 所以使用时注意不要使用带有null的列进行统计
SELECT COUNT(dept_name) FROM emp;
#2 查看员工总薪水、最高薪水、最小薪水、薪水的平均值
-- sum函数求和, max函数求最大, min函数求最小, avg函数求平均值
SELECT
SUM(salary) AS '总薪水',
MAX(salary) AS '最高薪水',
MIN(salary) AS '最低薪水',
AVG(salary) AS '平均薪水'
FROM emp;
count(1)count(*)count(列名)的区别: count(1)和count(*)统计所有条数,包括null值; count(列名)统计所有不为null的条数。
3、分组
分组往往和聚合函数一起使用,对数据进行分组,分完组之后在各个组内进行聚合统计分析。 语法格式:
SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 分组字段 [HAVING 条件];
代码示例:
#1.查询每个部门的平均薪资
SELECT
dept_name AS '部门名称',
AV