MYSQL练习题30道

CREATE TABLE DEPT(
DEPTNO int PRIMARY KEY,
DNAME VARCHAR(14),
LOC VARCHAR(13)
);

INSERT INTO DEPT VALUES	(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES	(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES	(40,'OPERATIONS','BOSTON');

 DEPTNO --部门编号,DNAME --部门名称,LOC --部门位置

CREATE TABLE EMP(
EMPNO int PRIMARY KEY,
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR int,
HIREDATE DATE,
SAL double(7,2),
COMM Double(7,2),
DEPTNO int
);

INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902, '1980-12-17', 800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698, '1981-2-20', 1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698, '1981-2-22', 1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839, '1981-4-2', 2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698, '1981-9-28', 1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839, '1981-5-1', 2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839, '1981-6-9', 2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566, '87-7-13',3000,NULL,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL, '1981-11-17', 5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698, '1981-9-8', 1500,0,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788, '1987-7-13',1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698, '1981-12-3', 950,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566, '1981-12-3', 3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782, '1982-1-23', 1300,NULL,10);

EMPNO --员工编号,ENAME --员工姓名,JOB --工作,MGR --直属领导编号,HIREDATE --入职时间,SAL --工资,COMM--奖金,DEPTNO --部门编号


CREATE TABLE SALGRADE(
GRADE INT,
LOSAL INT,
HISAL INT
);

INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);

GRADE --工资等级,LOSAL --最低工资,HISAL  --最高工资

导入上面三张表后,可以练习下面的mysql题目

1. 查询各个部门薪资最高的人

2. 取得平均薪水最高的部门的部门编号

3. 取得平均薪水最高的部门的部门名称

4. 求平均薪水的等级最低的部门的部门名称

5. 取得比普通员工(员工代码没有在mgr字段上出现的)的最高薪水还要高的*姓名

6. 取得薪水最高的前五名员工

7. 取得薪水最高的第六到第十名员工

8. 取得最后入职的5名员工

9. 取得每个薪水等级有多少员工

10. 列出所有员工及领导的姓名

11. 列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称

12. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门

13. 列出至少有5个员工的所有部门

14.列出薪金比"SMITH"多的所有员工信息

15. 列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数

16. 列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数

17. 列出在部门"SALES"<销售部>工作的员工的姓名,假定不知道销售部的部门编号

18. 列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员的工资等级

19. 列出与"SCOTT"从事相同工作的所有员工及部门名称

20. 列出薪金等于部门30中员工的薪金的其他员工的姓名和薪金

21. 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金.部门名称

22. 列出在每个部门工作的员工数量,平均工资和平均服务期限

23. 列出所有员工的姓名、部门名称和工资

24. 列出所有部门的详细信息和人数

25. 列出各种工作的最低工资及从事此工作的雇员姓名

26. 列出各个部门的MANAGER(领导)的最低薪金

27. 列出所有员工的年工资,按年薪从低到高排序

28. 求出员工领导的薪水超过3000的员工名称与领导名称

29. 求出部门名称中,带'S'字符的部门员工的工资合计、部门人数

30. 给任职日期超过30年的员工加薪10%

上一篇:行转列面试题


下一篇:MySQL学习之关联、子查询优化、排序查询优化