数据库 问题 SQL 语言

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:25:39
设数据库中有三个关系:
职工表 EMP(E#,ENAME,AGE,SEX,ECITY),
其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表 WORKS(E#,C#,SALARY),
其属性分别表示职工工号、工作的公司编号和工资。
公司表 COMP(C#,CNAME,CITY),
其属性分别表示公司编号、公司名称和公司所在城市。

用SQL语句写出下列操作,并将能够用关系代数表达式表示的操作用关系代数表示出来:
1.用CREATE TABLE语句创建上述三个表,需指出主键和外键。
2.检索超过50岁的男职工的工号和姓名。
3. 假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。
4. 假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。
5.检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。
6.假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数.显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。
7.工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。
8. 检索联华公司中低于本公司平均工资的职工工号和姓名。
9.在每一公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。
10. 在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。
11.建立一个有关女职工信息的视图EMP_WOMAN,属性包括(E#,ENAME,C#,CNAME,SALARY)。然后对视图EMP_WOMAN操作,检索每一位女职工的工资总数。(假设每个职工可在多个公司兼职)

回答第一个问题:
create database pubs

create table EMP
(
E# int nuo null primary key,
ENAME varchar(50) ,
AGE int,
SEX char(2),
ECITY varchar(100)
)
create table WORKS
(
E# int not null
C# int not null
SALARY varchar(50)
constraint pk_WORKS primary key(E#,C#)

)
create table COMP
(
C# int not null primary key,
CNAME varchar(50)
CITY varchar(100)
)

2
select E#,ENAME
from EMP
where AGE>=50 and SEX='男'

3
select E#,ENAME
from EMP join WORKS
on EMP.E#= WORKS .E#
where SALARY>1000 and SEX='男'

如此类推!!

这么高深的问题才50分???

哈哈,要求还好多