一、建立部门表和员工表并录入数据:
1.dept部门表结构如下:
(1)提示:部门号,部门名,地址)
(2)要求DEPTNO为主键,DNAME取值唯一;
名称 是否为空? 类型
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
记录值如下:
DEPTNO DNAME LOC
------- -------------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
2.emp员工表结构如下:
(1)提示:员工号,员工名,工作职位,上级领导,出生日期,工资,所属部门号)
(2)要求:EMPNO为主键,JOB默认值为‘MANAGER’,SAL约束取值高于700,DEPTNO为外键和DEPT表关联;
名称 是否为空? 类型
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
删除字段COMM
表记录如下:
EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 40
三、用SQL语言实现下列操作:
1.查看员工的姓名和员工部门号
2.每个员工所在的部门和部门所在的地区。
3.统计各部门工资的平均值;
4.查询SMITH上级领导的姓名;
5.查询工资高于JONES的所有员工的姓名和工资;
6.按员工的工资划分等级,工资高于2500的为A等,
在1500和2500间(包括1500及2500)为B等,
其余为C等(提示:增加新列DJ);
7.查询和ALLEN不在同一部门的员工姓名和所在部门名称;
8.用UNION查询工资高于1500并且在30号部门工作的员工号,员工名,工资;
9.按照员工的部门号升序排列,同部门的再按员工工资降序排列;
10.查工资不超过2000的员工所有信息。
11.查出哪些员工的工资比平均工资低。
12.查出哪个部门的工资是最低的。