现有一个公司的部门及雇员的数据库,由下面三个表组成:
雇员employee(雇员号empid,姓名empname,年龄age,地址address,薪水sal)
部门dep(部门号deptno,部门名dname,部门经理mgr)
工作work(雇员号empid,部门号deptno,在该部门工作的年限worktime)
试用SQL语言完成下列功能:
①建表,在定义中要求声明
⑴每个表的主外码
⑵雇员的年龄介于18到55之间
⑶雇员姓名和部门名不能为空
⑷薪水取1000到50000之间整数
A.求同时在三个部门工作的雇员姓名
B.计算各部门的职工的工资总额,并按照总额大小降序排列
C.查询和其部门经理住址相同的员工的姓名及经理姓名<要求使用视图>
D.为财务部门的雇员加薪,5年以下加5%,5年以上加3%
E.删除工作年限为0的员工记录,若员工删除后某部门下没有任何员工,删除该部门
CREATE TABLE CWORK(
EMPID VARCHAR(4),
DEPTNO VARCHAR(4),
WORKTIME INT(22),
CONSTRAINT FK_EMPID FOREIGN KEY(EMPID) REFERENCES EMPLOYEE(EMPID),
CONSTRAINT FK_DEPTNO FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENT(DEPTNO)
)
INSERT INTO EMPLOYEE VALUES
('E01','TOM',35,'海淀',8000),
('E02','DENNIS',24,'朝阳',5000),
('E03','JOHN&#