一. 这是索要查询三张表信息

dept

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案

emp

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_02

salgrade

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql_03

 二.单表查询

1.查找部门30中员工的详细信息。

SELECT * FROM emp e WHERE e.deptno = 30;

结果:

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_04

2.找出从事clerk工作的员工的编号、姓名、部门号。

SELECT e.`EMPNO`,e.`ENAME`,e.`DEPTNO`,e.`JOB` FROM emp e WHERE e.job = 'clerk';

结果:

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_05

3.检索出奖金多于基本工资的员工信息。

SELECT * FROM emp e WHERE e.comm > e.`SAL`;

结果:

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_06

4.检索出奖金多于基本工资60%的员工信息。

SELECT * FROM emp e WHERE e.comm > e.`SAL`*0.6;

结果:

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_07

5.找出10部门的经理、20部门的职员 的员工信息。

SELECT * FROM emp e WHERE e.job = 'manager' AND e.`DEPTNO`=10 OR e.job = 'clerk' AND e.`DEPTNO`=20;

结果:

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_08

6.找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。

SELECT * FROM emp e WHERE e.job = 'manager' AND e.`DEPTNO`=10 OR

e.job = 'clerk' AND e.`DEPTNO`=20

OR e.`JOB`!='manager'AND e.`JOB`!='clerk' AND e.`SAL` > 2000;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_09

7.找出获得奖金的员工的工作。

SELECT

e.job,e.comm

FROM

emp e WHERE comm>= 0;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_10

8.找出奖金少于100或者没有获得奖金的员工的信息。

SELECT

*

FROM

emp e WHERE e.`COMM`< 100

  OR e.`COMM` IS NULL ;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_11

9.找出姓名以A、B、S开始的员工信息。

SELECT

*

FROM

emp e

 WHERE e.`ENAME` LIKE 'A%' OR e.`ENAME` LIKE 'B%'

 OR e.`ENAME` LIKE 'S%';

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql_12

10.找到名字长度为6个字符的员工信息。

SELECT

*

FROM

emp e

 WHERE LENGTH(e.`ENAME`)=6;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_13

11.名字中不包含R字符的员工信息。

SELECT

*

FROM

emp e

 WHERE e.`ENAME` NOT LIKE '%R%';

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_14

12.返回员工的详细信息并按姓名排序。

SELECT

*

FROM

emp e

 ORDER BY e.`ENAME` ASC;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_15

13.返回员工的信息并按工作降序工资升序排列。

SELECT

*

FROM

emp e

 ORDER BY e.`JOB`  DESC,e.`SAL` ASC;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_16

14.计算员工的日薪(按30天)。

SELECT TRUNCATE(e.sal/30,2) FROM emp e;

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql_17

扩展:参考《MySQL_5.1_zh》-- 第12章:函数和操作符

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_18

15.找出姓名中包含A的员工信息。

select  * from emp e where e.ename like '%A%';

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_19

三.多表操作

1.返回拥有员工的信息以及员工的部门名、部门号。

select e.*,d.dname   from emp e,dept d where e.deptno = d.deptno

2.工资水平多于smith的员工信息

select * from emp e where e.sal >(select  e.sal   from emp e where e.ename ='smith')

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_20

3.返回员工和所属经理的姓名。

select e.ename,m.ename  from emp e,emp m where e.mgr =m.empno

select e.ename,m.ename  from emp e left join emp m on e.mgr =m.empno

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_21

or   

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_22

(没有经理是否显示)

4.返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名

select e.ename '员工姓名',m.ename '经理姓名',e.hiredate '员工入职日期',m.hiredate '经理入职日期'  from emp e,emp m where e.mgr =m.empno and e.hiredate < m.hiredate

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_23

5.返回员工姓名及其所在的部门名称。

select e.ename,d.dname  from emp e,dept d where e.deptno =d.deptno

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_24

6.返回从事clerk工作的员工姓名和所在部门名称。

select e.ename,d.dname,e.job  from emp e,dept d where e.deptno =d.deptno and e.job ='clerk'

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_25

7.返回部门号及其本部门的最低工资。

select  MIN(e.sal),e.deptno from emp e group by e.deptno

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_26

8.返回销售部(sales)所有员工的姓名。

select e.ename from emp e where e.deptno =(select  d.deptno  from dept d where d.dname ='sales')

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_27

9.返回工资水平多于平均工资的员工。

select  * from emp e where e.sal >(select AVG(e.sal) from emp e)

mysql数据单表查询题目及答案 mysql单表查询和多表查询_MySQL_28

10.返回与30部门员工工资水平相同的员工姓名与工资。

select e.ename,e.sal from emp e where e.sal in(select e.sal from emp e where e.deptno =30);

mysql数据单表查询题目及答案 mysql单表查询和多表查询_mysql数据单表查询题目及答案_29

11.返回工资高于30部门所有员工工资水平的员工信息。

select * from emp e where e.sal >(select  MAX(e.sal)  from emp e where e.deptno =30);

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_30

12.返回部门号、部门名、部门所在位置及其每个部门的员工总数。

select e.deptno,d.dname,d.loc,COUNT(*)   from emp e,dept d where e.deptno = d.deptno group by e.deptno

13.返回员工的姓名、所在部门名及其工资。

select e.ename,d.dname,e.sal  from emp e,dept d where e.deptno =d.deptno

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_31

14.返回员工的详细信息。(包括部门名)

select e.*,d.dname  from emp e,dept d where e.deptno =d.deptno

mysql数据单表查询题目及答案 mysql单表查询和多表查询_数据库_32

15.返回员工工作及其从事此工作的最低工资。

select  MIN(e.sal),e.job  from emp e group by e.job

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_33

16.计算出员工的年薪,并且以年薪排序。

select  e.sal*12,e.ename  from emp e order by e.sal*12 desc

mysql数据单表查询题目及答案 mysql单表查询和多表查询_database_34