1.查询员工编号为6的员工姓名、薪水、职位信息
SELECT ename, sal, job FROM emp WHERE empno = 6;案例分析:
这是一个最简单的查询案例,主要用来考察大家对于查询的理解和掌握情况。
2.查询出职位是销售员的所有员工的员工编号、员工姓、年薪、职位信息。
SELECT empno, ename, sal*12, job FROM emp WHERE job = '销售员';案例分析:
对于这道题目我们需要注意两点,首先员工的职位是销售员查询的条件,其次就是在查询的时候薪水要乘以12,计算得到员工的年薪。
3.查询名为 mike 的员工编号、员工姓名、薪水、职位信息(同时数据表中有名为 Mike的员工)。
SELECT empno, ename, sal, job FROM EMP WHERE ename = 'mike';案例分析:
设置这个题目的目的是为了让大家牢记,MySQL中默认是不区分大小写的,这点和其他版本的数据库有所区别的。
4.查询薪水在 2000~5000 之间的员工编号、员工姓名、薪水、职位信息。
SELECT empno, ename, sal, job FROM EMP WHERE sal BETWEEN 2000 AND 5000;案例分析:
这是一个典型的关于查询范围的题目,我们可以使用 BETWEEN……AND……结构来实现
5.查询薪水不在 3500~5000 之间的员工编号、员工姓名、薪水、职位信息
SELECT empno, ename, sal, job FROM EMP WHERE NOT sal BETWEEN 3500 AND 5000;案例分析:
这是和第四个题目对应的题目,对指定的范围进行取反,NOT……BETWEEN……AND……就可以得到最终结果了。
6.查询出没有设置员工岗位的员工编号、员工姓名、薪水、职位信息,并且按照薪水降序排列。
SELECT empno, ename, sal, job FROM EMP WHERE job IS NULL ORDER BY sal DESC;案例分析:
所谓没有设置员工岗位就是在 emp 表中 job 这一列数据值为NULL
7.查询出员工是张姓的员工编号、员工姓名、薪水、职位信息。
SELECT empno, ename, sal, job FROM emp WHERE ename LIKE '张%';案例分析:
这是一个典型的模糊查询案例,之前介绍模糊查询时候也为大家做过相应的演示。
8.查询出每个部门的平均工资并且按照降序排列。
SELECT deptno, avg(sal) FROM emp GROUP BY deptno;案例分析:
这是一个明显的分组查询的题目,以 emp 表中的 deptno 列作为分组标识列,然后利用 AVG() 求取分组之后每个部门的平均工资,就可以得到最终的结果了。
9.查询出每个部门员工的人数。
SELECT deptno, count(*) FROM emp GROUP BY deptno;
案例分析:
这个题目和上一个题目类似,以 emp 表中的 deptno 列作为分组标识列,然后利用 count() 函数就可以获取每个部门的总人数了。
10.查询出每个岗位最高薪水、最低薪水以及人数。
SELECT job, max(sal), min(sal), count(*) FROM emp GROUP BY job;
案例分析:
相比之前两个分组查询来说,要实现这个查询我们需要用到 max()、min()、count(),可以帮助大家更好的理解分组查询。




