SQL作业练习题
1. 表结构
Emp----员工信息表
Ename varchar2(30), --姓名 Empno number(5), --编号 Deptno number(5), --所在部门
Job varchar2(20), --工种(人员类别),如:manager 经理,clerk 办事员 Hiredate Date, --雇佣日期 Comm number(6,2), --佣金 Sal number(6,2) --薪金
Mgr number(5) --员工上司编号
Dept-----部门表
Dname varchar2(30), --部门名 Deptno number(5), --部门号 Loc varchar2(50) --位置
2. 准备数据:
create table emp –创建员工信息表 (
Ename varchar2(30), --姓名 Empno number(5), --编号 Deptno number(5), --所在部门
Job varchar2(20), --工种(人员类别),如:manager 经理,clerk 办事员
Hiredate Date --雇佣日期
Comm number(6,2), --佣金 Sal number(6,2) , --薪金 Mgr number(5) --编号 )
insert into emp(Ename,Empno,Deptno,Job,Comm,Sal)
values('张三',10001,10,'办事员',500,2000) insert into emp(Ename,Empno,Deptno,Job,Comm,Sal)
values('李四',10002,10,'办事员',650,2200) insert into emp(Ename,Empno,Deptno,Job,Comm,Sal)
values('王五',10002,20,'办事员',650,2200) insert into emp(Ename,Empno,Deptno,Job,Comm,Sal)
values('小张',20001,20,'经理',980,3200)
create table dept --部门表 (
Dname varchar2(30), --部门名 Deptno number(5), --部门号 Loc varchar2(50) --位置 )
insert into dept(Dname,Deptno,Loc) values(’市场部',10,'辽宁大连') insert into dept(Dname,Deptno,Loc) values('研发部',20,'辽宁沈阳') insert into dept(Dname,Deptno,Loc) values('人事部',20,'深圳')
一、单表查询
1、选择部门30中的雇员
2、列出所有办事员的姓名、编号和部门
3、找出佣金高于薪金的雇员
4、找出佣金高于薪金60%的雇员
5、找出部门10中所有经理和部门20中的所有办事员的详细资料
6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
7、找出收取佣金的雇员的不同工种
8、找出不收取佣金或收取的佣金低于100的雇员
9、找出各月最后一天受雇的所有雇员
10、找出早于25年之前受雇的雇员
11、显示只有首字母大写的所有雇员的姓名
12、显示正好为6个字符的雇员姓名
13、显示不带有'R'的雇员姓名
14、显示所有雇员的姓名的前三个字符
15、显示所有雇员的姓名,用a替换所有'A'
16、显示所有雇员的姓名以及满10年服务年限的日期
17、显示雇员的详细资料,按姓名排序
18、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
19、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
20、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面
21、显示在一个月为30天的情况下所有雇员的日薪金
22、找出在(任何年份的)2月受聘的所有雇员
23、对于每个雇员,显示其加入公司的天数
24、显示姓名字段的任何位置,包含 \"A\" 的所有雇员的姓名
25、以年、月和日显示所有雇员的服务年限
二、多表查询
1、列出至少有一个雇员的所有部门
2、列出薪金比\"SMITH\"多的所有雇员
3、列出所有雇员的姓名及其直接上级的姓名
--4、列出入职日期早于其直接上级的所有雇员
--5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
--6、列出所有“CLERK”(办事员)的姓名及其部门名称
--7、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
--8、列出从事“SALES”(销售)工作的雇员的姓名,假部的部门编号
--9、列出薪金高于公司平均水平的所有雇员
--10、列出与“SCOTT”从事相同工作的所有雇员
--11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
--12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金
--13、列出每个部门的信息以及该部门中雇员的数量
--14、列出所有雇员的雇员名称、部门名称和薪金
--15、列出从事同一种工作但属于不同部门的雇员的不同组合
--16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员
--17、列出各种类别工作的最低工资
--18、列出各个部门的MANAGER(经理)的最低薪金
--19、列出按年薪排序的所有雇员的年薪
--20、列出薪金水平处于第四位的雇员