Oracle 数据库4

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:51:26
现有一个公司的部门及雇员的数据库,由下面三个表组成:
雇员employee(雇员号empid,姓名empname,年龄age,地址address,薪水sal)
部门department(部门号deptno,部门名dname,部门经理mgr)
工作work(雇员号empid,部门号deptno,在该部门工作的年限worktime)
试用SQL语言完成下列功能:
①建表,在定义中要求声明
⑴每个表的主外码
⑵雇员的年龄介于18到55之间
⑶雇员姓名和部门名不能为空
⑷薪水取1000到50000之间整数
②往表中插入数据
雇员( E01,tom,35,海淀,8000
E02,dennis,24,朝阳,5000
E03,john,20,海淀,4000
E04,rick,41,朝阳,7000
E05,bill,45,西城,7500
E06,frank,35,海淀,6000
E07,jank,25,东城,3000
E08,mike,23,东城,3500)
部门( D01,人事,E04
D02,信息,E01
D03,销售,E05
D04,财务,E06)
工作( E01,D02,6
E01,D03,1
E01,D04,2
E02,D01,2
E02,D04,0
E03,D02,0
E04,D01,4
E04,D02,1
E05,D03,2
E06,D04,4
E07,D04,1
E08,D03,2)
③用SQL语句完成下列查询
⑴求同时在

1.--删除表
drop table work;
drop table dep;
drop table employee;

--雇员
create table employee(
empid char(3) primary key,
empname varchar2(10) not null,--雇员姓名不能为空
age number(2) check (age between 18 and 55),--雇员的年龄介于18到55之间
address varchar2(20),
sal number(5) check (sal between 1000 and 50000) --薪水取1000到50000之间整数
);

--部门
create table dep(
deptno char(3) primary key ,
dname varchar2(20) not null,--部门名不能为空
mgr char(3) references employee(empid)
);

--工作
create table work(
empid char(3) references employee(empid),
deptno char(3) references dep(deptno),
worktime number(1),
primary key (empid,deptno)
);


insert into employee values ('E01','tom',35,'海淀',8000);
insert into employee values ('E02','dennis',24,'朝阳',5000);
insert into employee values ('E03','john',20,'海淀