1、设教学数据库中有三个关系:
学生关系 S(S#,SNAME ,AGE,SEX,DEPT),其属性分别表示学号、姓名、年龄、性别、所在系。
课程关系 C(C# ,CNAME ,TEACHER) ,其属性分别表示课程号、课程名、任课教师名。
选课关系 SC(S#,C#,GRADE} ,其中 GRADE 表示成绩。
请用关系代数表达式表达下面的查询。
检索选修课程号为“ C2”的学生的学号和姓名。
2、在 36 题的基本表中,试用 SQL 语句完成下面操作:
查询与张明同一个系的学生信息。
3、在 36 题的基本表中,试用 SQL 语句完成下面操作:
删除学号为“ 95002”的学生选修的课程号为“ C2”的记录。
4、在 36 题的基本表中,试用 SQL 语句完成下面的操作:
建立数学系学生的视图 C_STUDENT ,并要求进行修改和插入数据时, 仍需保证该视图只有数学系的学生。视图的属性名为: S#,SNAME ,AGE ,DEPT。
5、在 36 题的基本表中,试用 SQL 语句查询每个学生已选修课程的门数及平均成绩。
6、设某工厂数据库中有四个实体集。一是“仓库”实体集,属性有仓库号、仓库面积等;
二是“零件”实体集,属性有零件号、零件名、规格、单价等;三是“供应商”实体集,
属性有供应商号、供应商名、地址等;四是“保管员”实体集,属性有职工号、姓名等。
设仓库与零件之间有 “存放”联系, 每个仓库可存放多种零件,每种零件可存放于若
干仓库中,每个仓库存放每种零件要记录库存量;供应商与零件之间有“供应”联系,一
个供应商可供应多种零件, 每种零件也可由多个供应商提供, 每个供应商每提供一种零件要记录供应量;仓库与保管员之间有“工作”联系,一个仓库可以有多名保管员,但一名
保管员只能在一个仓库工作。
(1)试为该工厂的数据库设计一个 ER 模型,要求标注联系类型,可省略实体属性。
(2)根据转换规则,将 ER 模型转换成关系模型,要求标明每个关系模式的主键和外键。
7、设有一个反映职工每月超额完成生产任务的关系模式:
R(日期,职工号,姓名,工种,额定工作量,本月超额)
如果规定: 每个职工只隶属于一个工种, 每个工种的额定工作量惟一, 每个工种的职工有多人。
( 1)根据上述规定,写出模式 R 的基本 FD 和关键码。
( 2)R 最高属于第几范式,并说明理由。
( 3)将 R 规范到 3NF。
8、设有学生表 S(SNO,SN)(SNO为学生号,SN为姓名 )和学生选修课程表 SC(SNO,CNO,CN,G)(CNO
为课程号, CN为课程名, G为成绩 ),试用 SQL语言完成以下各题:
(1) 建立一个视图 V-SSC(SNO,SN,CNO,CN,G),并按 CNO升序排序;
(2) 从视图 V-SSC上查询平均成绩在 90分以上的 SN、CN和 G。
1: 参考答案: (1)CREATE SQL VIEW V-SSC(SNO ,SN,CNO,CN,G)
AS SELECT S.SNO,S.SN,CNO,SC,SC.G
FROM S,SC
WHERE S.SNO=SC.SNO
ORDER BY CNO
(2)SELECT SN,CN,G
FROM V-SSC
GROUP BY SNO
HAVING AVG(G)>90
9、数据模型如下:
商店 S(SNO, SNAME , CITY)
商品 P(PNO, PNAME , COLOR)
销售 SP(SNO, PNO, DATE, QTY)
用 SQL完成查询:只销售红色商品的商店名。
1: 参考答案: 数据模型如下:
商店 S(SNO, SNAME, CITY)
商品 P(PNO, PNAME, COLOR)
销售 SP(SNO, PNO,DATE, QTY)
用 SQL完成查询:
只销售红色商品的商店名:
SELECTSNAME
FROMS
WHERESNOIN
(SELECTSNO
FROMSP
WHERE NOT EXISTS
(SELECT*
FROMP
WHERECOLO ″RED″
ANDPNO =SP.PNO))
10、试用 SQL更新语句表达对教学数据库中三个基本表 S、SC、C的各个更新操作:
(1) 往基本表 S中插入一个学生元组 ( ‘S9’,‘WU’,18)。
(2) 在基本表 S中检索每一门课程成绩都大于等于 80分的学生学号、姓名和性别,并把检索到的值送
到另一个已存在的基本表 STUDENT (S#,SNAME,SEC) 。
(3) 在基本表 SC中删除尚无成绩的选课元组。
(4) 把 WANG 同学的学习选课和成绩全部删除。
(5) 把选修 MATHS课不及格的成绩全改为空值。
(6) 把低于总平均成绩的女同学成绩提高 5%。
(7) 在基本表 SC中修改 C4课程的成绩,若成绩小于等于 75分时提高 5%,若成绩大于 75分时提高 4%(用
两个 UPDATE语句实现 ) 。
1: 参考答案: (1)INSERT INTO S(S#,SNAME,AGE,SEX)
VALUES(′S9′, ′WU′,18, ′F′);
(2)INSERT INTO STUDENT(S#,SNAME,SEX)
第 11 页
SELECT S.S#,SNAME,SEX
FROM S,SC
WHERE S.S#=SC.S# AND GRADE>=80;
(3)DELETE FROM SC
WHERE GRADE IS NULL
(4)DELETE FROM SC
WHERE S# IN(SELECT S#)
FROM S
WHERE SNAME= ′WANG ′)
(5)UPDATE SC
SET GRADE=NULL
WHERE GRADE<60;
(6)UPDATE SC
SET GRADE=GRADE1.05
SET GRADE<(SELECT AVG(GRADE)
FROM SC
WHERE S# IN(SELECT S#
FROM S
WHERE SEX= ′F′));
(7)UPDATE SC
SET RAGE=GRADE1.04
WHERE 75<=(SELECT AVG(GRADE)
FROM SC);
UPDATE SC
SET GRADE=GRADE*1.05
WHERE 75>=(SELECT AVG(GRADE)
FROM SC);
11、
一个已存在的表 STUDENT(S#,SNAME,SEX)在基本表 S中检索每一门课程成绩都大于 80分的学生学号、 姓名和性别, 并把检索到的值送到另
12、在基本表 SC中删除尚无成绩的选课元组
把 WANG 同学的学习选课和成绩全部删去。
13、把选修 MATHS课不及格的成绩全改为空值。
14、把低于总平均成绩的女同学成绩提高 5%。
15、在基本表 SC中修改 C4课程的成绩,若成绩小于等于 75分时提高 5%,若成绩大于 75分时提高 4%(用两个 UPDATE语句实现 )。
16、
17、
18、
19、
20、
21、设关系模式 R(A,B,C,D,E,G),
F={ABC,CA,BCD,ACDB ,DEG,BEC,CGBD ,CEAG}
求F的最小覆盖。
(1).
答案:
22、设有学生表 S(SNO,SN)(SNO为学生号, SN为姓名 ) 和学生选修课程表
SC(SNO ,CNO,CN,G)(CNO为课程号, CN为课程名, G为成绩 ) ,试用 SQL语言完成以下各题:
(1) 建立一个视图 V-SSC(SNO ,SN,CNO,CN,G),并按 CNO升序排序;
(2) 从视图 V-SSC上查询平均成绩在 90分以上的 SN、CN和G。
答案: (1)CREATE SQL VIEW V-SSC(SNO ,SN,CNO,CN,G)
AS SELECT S.SNO ,S.SN,CNO,SC.CN,SC.G
FROM S ,SC
WHERE S.SNO=SC.SNO
ORDER BY CNO
(2)SELECT SN,CN,G
FROM V-SSC
GROUP BY SNO
HAVING AVG(G)>90
23、
24、37.依据 36 题的关系模式, 建立一个包含 Sno、Sname、Aname和 Date
的视图 ST。
25、38.依据 36 题的关系模式,试用 SQL语言查询每个协会的协会编号
和学生数,并按人数降序排列。
26、39.依据 36 题的关系模式,试用 SQL语言查询没有参加任何协会的
学生姓名和所在系
27、40.依据 36 题的关系模式,试用关系代数查询计算机系的学生姓名
和年龄
28、41.设某家电公司售后服务系统中有一个记录安装工人日工作量的关
系模式:
R(员工编号,姓名,电话,产品型号,日期,安装数量 )
如果规定:员工每天可安装多种产品, 并按不同产品型号统计安装数
量。
(1) 写出关系模式 R的基本 FD和关键码。
(2)R 最高属于第几范式。
(3) 将 R规范到 3NF。
42.某商业集团的商品进销存系统中,涉及的部分信息如下:
(1) 商品:商品号、商品名、规格、计量单位。
(2) 供应商:供应商号、供应商名、地址。
(3) 商店:商店号、商店名、地址。
(4) 客户:客户号、客户名、地址。
其中,每个供应商可供应多种商品, 每种商品也可向多个供应商订购,
订购时要记录订购单价和订购数量; 每个商店可向多个客户销售多种
商品,每个客户可以从多个商店购买多种商品, 每种商品也可在多个
商店销售给多个客户, 商品销售时要记录销售单价、 销售数量和销售
日期。
(1) 建立一个反映上述局部应用的 ER模型,要求标注联系类型 ( 可省
略实体属性 )。
(2) 根据转换规则,将 ER模型转换为关系模型。
29、42.某商业集团的商品进销存系统中,涉及的部分信息如下:
(1) 商品:商品号、商品名、规格、计量单位。
(2) 供应商:供应商号、供应商名、地址。
(3) 商店:商店号、商店名、地址。
(4) 客户:客户号、客户名、地址。
其中,每个供应商可供应多种商品, 每种商品也可向多个供应商订购,
订购时要记录订购单价和订购数量; 每个商店可向多个客户销售多种
商品,每个客户可以从多个商店购买多种商品, 每种商品也可在多个
商店销售给多个客户, 商品销售时要记录销售单价、 销售数量和销售
日期。
(1) 建立一个反映上述局部应用的 ER模型,要求标注联系类型 ( 可省
略实体属性 )。
(2) 根据转换规则,将 ER模型转换为关系模型。
30、
31、
32、
33、
34、
35、
36、
37、
38、
39、四、设计题(本大题共 5 小题,每小题 4 分,共 20 分)
设一个图书借阅管理数据库中包括三个关系模式:
图书(图书编号,书名,作者,出版社,单价)
读者(借书证号,姓名,性别,单位,地址)
借阅(借书证号,图书编号,借阅日期,归还日期,备注)
用 SQL 语句完成下面 36-39 题。
36.查询价格在 50 到 60 元之间的图书,结果按出版社及单价升序排列。
SELECT * FROM FORM 图书
WHERE 单价 BETWEEN 50 AND 60;
37.查询王明所借阅的所有图书的书名及借阅日期。
SELECT 图名 ,借阅日期
FROM 读者 ,借阅 ,图书
WHERE 读者 .姓名 =’王明 ’
AND 图书 .图书编号 =借阅 .图书编号
AND 读者 .借书证号 =借阅 .借书证号 ;
38.查询各个出版社图书的最高价格、最低价格和平均价格。
39.建立“红星汽车厂”读者的视图 RST。
40.依据 36 题的关系模式,用关系代数表达式检索借阅“高等数学”的读者姓名。
40、设有一个记录职工历次体检情况的关系模式:
R(职工号,姓名,部门号,体检日期,体检医院,总检结果,体检项目,分项结果)
说明:体检医院不固定,总检结果是指对体检结果的总体评价。
(1)写出模式 R 的基本 FD 和关键码。
职工号 姓名;
职工号 部门号;
职工号,体检日期 体检医院;
职工号,体检日期 总检结果
职工号,体检项目,体检日期 分项结果;
(2)R 最高属于第几范式?
1NF
(3)将 R 规范到 3NF。
职工信息表 (职工号,姓名,部门号)
职工体检结果总表 (职工号,体检日期,体检医院,总检结果)
职工体检分项结果表 (职工号,体检日期,体检项目,分项结果)
41、
某课程的计算机模拟考试系统涉及的部分信息如下:
用户:用户号、姓名、密码。
试题:试题编号、试题内容、知识点、难度系数、选项 A、选项 B、选项 C、选项 D、
答案。
试卷:试卷编号、生成时间。
说明:允许用户多次登录系统进行模拟测试;每次登录后,测试试卷由系统自动抽题随机生成,即每次生
成试卷均不相同;每份试卷由若干试题组成;系统要记录每次测试的起始和结束时间,以及测试成绩。
(1)建立一个反映上述局部应用的 ER 模型,要求标注联系类型(可省略实体属性) 。
(2)根据转换规则,将 ER 模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在) 。
42、
43、
44、
45、
46、41.为体育部门建立数据库,其中包含如下信息:
(1) 运动队:队名、主教练,其中队名惟一标识运动队。
(2) 运动员:运动员编号、姓名、性别、年龄。
(3) 运动项目:项目编号、项目名、所属类别。
其中:每个运动队有多名运动员,每名运动员只属于一个运动队;每名运动员可以参加
多个项目,每个项目可以有多个运动员参加。系统记录每名运动员参加每个项目所得名次和成绩以及比赛日期。
(1) 根据以上叙述,建立 ER模型,要求标注联系类型。 ( 实体的属性可以省略 )
(2) 根据转换规则,将 ER模型转换成关系模型,要求标明每个关系模式的主键和外键(如果存在) 。
47、42.设有一个反映工程及其所使用相关材料信息的关系模式:
R(工程号,工程名,工程地址,开工日期,完工日期,材料号,材料名称,使用数量 )
如果规定:
每个工程的地址、开工日期、完工日期惟一;不同工程的地址、开工和完工日期可能相同;
工程名与材料名称均有重名;
每个工程使用若干种材料,每种材料可应用于若干工程中。
(1) 根据上述规定,写出模式 R的基本 FD和关键码。
(2)R 最高达到第几范式,并说明理由。
(3) 将 R规范到 3NF。
48、
49、
50、
四、设计题 ( 本大题共 5 小题,每小题 4 分,共 20 分)
已知有如下三个关系:
学生 (学号,姓名,系别号 )
项目 (项目号,项目名称,报酬 )
参加 (学号,项目号,工时 )
其中,报酬是指参加该项目每个工时所得报酬。
依据此关系回答下面 36~40 题。
全国自考数据库系统原理历年试题及答案 (2008–2013)
3 / 56
36.试用关系代数表达式写出下列查询:
列出“王明”同学所参加项目的名称。
答:π项目名称 ( б姓名 =’ 王明 ’ (学生∞参加∞项目) )
37.试用 SQL语句写出下列查询:
列出报酬最高的项目编号。
答: select 项目编号
from 项目,
Where 报酬 =(SELECT MAX (报酬) FROM 项目)
38.试用 SQL语句写出下列查询:
列出每个系所有学生参加项目所获得的总报酬。
答: SELECT 系别号, SUM(报酬 *工时)
FROM 学生,项目,参加
WHERE 学生 .学号 =参加 . 学号 AND
项目 . 项目号 =参加 . 项目号
GROUP BY 系别号
39. 试用 SQL语句查询报酬大于 800 元(包括 800 元)的项目名称。
答: SELECT 项目名称
FROM 项目
WHERE 报酬 >=800
40.试用 SQL命令创建一个学生 _项目视图,该视图包含的属性名称为:学号,姓名和项目名称。
答: CREATE VIEW 学生项目(学号,姓名,项目名称)
AS
SELECT 学生 . 学号,姓名,项目名称
FROM 学生,项目,参加
WHERE 学生 . 学号 =参加 . 学号 AND
项目 . 项目号 =参加 . 项目号
51、
52、
53、
54、
55、
答 :
56、
57、
58、
59、
答 :
60、
答:
61、
答 :
62、
答 :
63、
答 :
64、
65、
66、
67、
68、
69、
70、
答 :
71、
答 :
72、
73、
74、
75、
答 :
76、
41.假设有一关系模式 R(学号,姓名,系名,系主任,课程号,课程名,成绩 ) 其中:每个
系只有一位系主任; 每个学生学习多门课程, 每个课程多个同学选修, 每个同学的每门课程
只有一个成绩。
(1) 根据上述条件,写出关系模式 R的关键码。
(2)R 最高属于第几范式,为什么 ?
(3) 将 R规范到 3NF。
42.设有如下实体:
读者:读者编号,姓名,身份证号
单位:单位号,单位名称
图书:图书号,图书名,定价
出版社:出版社名,电话,邮政编码,地址
其中, 每个读者可以借阅多本图书, 每本图书可以由多名读者借阅, 读者借阅图书要记
录借阅日期及还书目期, 图书可以重复借阅, 但每个读者每本图书每天最多借一次: 每个单
4 / 7
位有多个读者, 每个读者只属于一个单位; 每个出版社可以出版多种图书, 每本图书只属予
一个出版社。
(1) 试画出反映上述实体关系的 E-R 图 ( 不必画实体的属性 ) 。
(2) 转换成关系模式,并指出每个关系模式的主码和外码 (如果有外码指出来 ) ,在主码
下画直线 ______,在外码下画波浪线 ______。
77、
78、
79、
80、
81、
41.某学校图书借阅管理系统应提供如下功能:
(1)查询书库中现有图书信息,包括书号、书名、作者、单价、出版社;
(2)查询读者信息,包括读者的借书证号、姓名、性别、单位;
(3)查询读者的借阅情况,包括读者的借书证号、书号、借书日期、还书日期等;
(4)不同类别的读者有不同的借阅权限,读者类别由类别编号、名称、最大允许借书量、借
书期限等描述。
根据以上叙述,回答下列问题:
(1)试为该图书借阅系统设计一个 ER 模型,要求标注联系类型,可省略实体属性。
(2)根据转换规则,将 ER 模型转换成关系模型,要求标注每个关系模式的主键和外键 (如果
存在 )。
42.设有一个反映教师参加科研项目的关系模式:
R(教师号,项目名称,科研工作量,项目类别,项目金额,负责人 )
如果规定: 每个项目可有多人参加, 每名教师每参加一个项目有一个科研工作量; 每个项目
只属于一种类别,只有一名负责人。
(1)根据上述规定,写出模式 R 的基本 FD 和关键码。
(2)说明 R 不是 2NF 的理由。
(3)将 R 规范到 3NF
82、现有如下关系:学生(学号,姓名,性别,专业,出生年月)
教师(教师编号,姓名,所在部门,职称)
授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)
1.查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号;
1、 SELECT 学号,教师编号
FROM 授课
WHERE 课程名称 ='数据库原理 ’ AND 成绩 <60;
2.查找学习“英语”课程的“计算机应用”专业学生的学号,姓名和成绩;
2、SELECT 学号,姓名,成绩
FROM 授课,学生
WHERE 学生 .学号 =授课 .学号 AND 专业 ='计算机应用 ’ AND 课程名称 ='英语 ';
3.查找教师“李洪”所教过的学生成绩为 90 分以上(包括 90)的学生学号,姓名和专业;
3、 SELECT 授课 .学号 ,学生 .姓名 ,专业
FROM 学生,教师,授课
WHERE 学生 .学号 =授课 .学号 AND 教师 .教师编号 =授课 .教师编号 AND 教师 .姓名 =’
李洪 ’ AND 成绩 >=90;
4.删除学生表中学号为“ 9903016”的记录;
4、DELETE
FROM 学生
WHERE 学号 =‘9903016’;
5.将编号为“ 60016”的教师所在的部门该为“计算机” ;
5、UPDATE 教师
SET 所在部门 ='计算机系 ’
WHERE 教师编号 =‘60016’;
6.建立“计算机应用”专业成绩有过不及格的学生的视图;
6、 CREATE VIEW 成绩
AS SELECT 学生 .学号 ,姓名,成绩
FROM 学生,授课
WHERE 学生 .学号 =授课 .学号 AND 专业 ='计算机应用 ’ AND 成绩 <60;
综合体
1.假设学生——课程数据库关系模式如下:
S(Sno,Sname ,Sage,Ssex)
C(Cno,Cname ,Teacher)
SC(Sno,Cno,Grade)
用 SQL语句表达下列查询:
(1) 找出刘老师所授课程的课程号和课程名;
SELECT Cno ,Cname
FROM C
WHERE Teacher LIKE ‘刘%’;
(2) 找出年龄小于 22 岁的女学生的学号和姓名。
SELECT Sno ,Sname
FROM S
WHERE Sage 22 AND Ssex= ‘F’
1.用 SQL的有关语句定义:
(1)学生关系 Student ,包括学号 Sno、姓名 SN、年龄 SA;
CREATE TABLE Student(
Sno INT PRIMARY KEY
SN CHAR (30),
SA INT
);
(2 )课程关系 Course,包括课程号 Cno、课程名 CN、任课教师 CT;
CREATE TABLE Course(
Cno INT PRIMARY KEY ,
CN CNAR (30),
CT CHAR (30)
);
(3)学生选课关系 SC,包括 Sno,Cno和成绩 G。
CREATE TABLE SC (
Sno INT ,
Cno INT ,
G INT ,
PRIMARY KEY(Sno ,Cno),
FOREIGN KEY(Sno )REFERENCES Student (Sno),
FOREIGN KEY(Cno )REFERENCES Course(Cno)
);
2 .按题 1 的学生关系模式,用 SQL的有关语句。
(1)授予赵华对学生关系 Student 的插入和修改权限;
GRANT INSERT ,UPDATE ON Student TO‘赵华’;
(2)插入任意 3 个学生的完整信息;
INSERT INTO Student
(TABLE (01001,‘赵华’,19),
(01002,‘李芳’,18),
(01003 ,‘刘红’,20),
);
(3)修改所有学生的年龄。
UPDATE Student
SET SA =SA+1;
3.结合题 1 定义的学生选课数据库,用 SQL语句查询学生数据库课程的成绩,输出
学生姓名和成绩,按成绩排序(降序) ;若成绩相同,再按学号排序(升序) 。
SELECT SN ,G
FROM Student ,Course,SC
WHERE Student. Sno =SC.Sno AND Course. Cno=SC.Cno
AND Course. CN= ‘数据库’
ORDER BY G DESC,Sno;
设计题
- 设教学数据库的模式如下:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用多种方式定义下列完整性约束:
(1) 在关系 S中插入学生年龄值应在 16~ 25 岁之间
(2) 在关系 SC中插入元组时,其 S#值和 C#值必须分别在 S和 C中出现。
(3) 在关系 SC中修改 GRADE值时,必须仍在 0~100 之间。
(4) 在删除关系 C中一个元组时,首先要把关系 SC中具有同样 C#的元组全部删去。
(5) 在关系 S中把某个 S#值修改为新值时,必须同时把关系 SC中那些同样的 S#值也修改为新值。
解:
(1) CREATE TABLE S(
S# CHAR(4),
SNAME CHAR(10) NOT NULL ,
AGE SMALLINT,
PRIMARY KEY(S#),
CHECK (AGE>=16 AND AGE<=25))
(2) 采用外键子句约束
CREATE TABLE SC
(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#),
FOREIGN KEY(C#) REFERENCE C(C#)
)
(3) 采用元组检查
CREATE TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#),
FOREIGN KEY(C#) REFERENCE C(C#),
CHECK (GRADE>=0 and AGE<=100))
(4) 采用外键约束
CREATE TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#),
FOREIGN KEY(C#) REFERENCE C(C#) ON DELETE CASCADE
)
(5) 采用外键约束
CREATE TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#) ON UPDATE CASCADE ,
FOREIGN KEY(C#) REFERENCE C(C#)
)
- 在教学数据库的关系 S、SC、 C中,试用 SQL2的断言机制定义下列两个完整性约束:
(1) 学生必须在选修 Maths 课后,才能选修其他课程。
(2) 每个男学生最多选修 20 门课程。
解: (1)
CREATE ASSERTION ASS1 CHECK
( NOT EXISTS
( SELECT S FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE CNAME<>‘MATHS’)
AND S# NOT IN
(SELECT S# FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE CNAME=‘MATHS’)));
(2)CREATE ASSERTION ASS2 CHECK
( 20>=ALL(SELECT COUNT #)
FROM S,SC
WHERE #= AND SEX=‘M’
GROUP BY S#));
3、设有 3个关系:
职工表; EMP(ENO ,ENAME ,AGE,SEX,ECITY)
工作表: WORKS(ENO ,CNO,SALARY)
公司表: COMP(CNO ,CNAME ,CITY)
CREATE TABLE COMP
(
CNO CHAR(4) NOT NULL,
CNAME CHAR(20) NOT NULL,
CITY CHAR(8),
ECITY CHAR(8),
PRIMARY KEY(CNO)
)
试用 SQL的语句、子句或触发器完成下列问题:
(1) 要求男职工年龄在 20~50 岁之间,女职工年龄在 18~40 岁之间;
(2) 在 WORKS 表中的职工号 (ENO值) 必须在 EMP表中存在 ( 用三种方法 ) ;
(3) 职工的工资不能低于 1500 元;
(4) 把对 WORKS 关系的查询、 修改工资的权限 授予用户 HE且 HE拥有转授权
(5) 把对 EMP表、 COMP表的查询权限授给 全体用户 。
解:
36.设有关系 S(S#,NAME ,AGE, SEX),其属性分别表示:学号,姓名,年龄和性别;
关系 SC(S#,C#,GRADE ),其属性分别表示:学号,课号和成绩。
试用 SQL 语句完成统计每一年龄选修课程的学生人数。
37.设有学生表 S(S#,NAME , AGE ,SEX),其属性分别表示:学号,姓名,年龄和性
别;选课表 SC(S#,C#,GRADE ),其属性分别表示:学号,课号和成绩。试用关系代数
表达式表达下面查询:检索学习课号为 C2 课程的学号和姓名。
38.设有职工基本表 EMP (ENO,ENAME ,AGE ,SEX,SALARY ),其属性分别表示:
职工号,姓名,年龄,性别,工资。试用 SQL 语句写出为每个工资低于 1000 元的女职工加
薪 200 元。
39.设有科研项目表 PROJ(项目编号,项目名称,金额,教师编号) 。试用 SQL 语句写出
下面查询:列出金额最高的项目编号和项目名称。
40.设有学生关系 STU(SNO,SNAME ,AGE, SEX)
五、综合题 (本大题共 2 小题,每小题 5 分,共 10 分)
41.设某家电公司售后服务系统中有一个记录安装工人日工作量的关
系模式:
R(员工编号,姓名,电话,产品型号,日期,安装数量 )
如果规定:员工每天可安装多种产品, 并按不同产品型号统计安装数量。
(1) 写出关系模式 R的基本 FD和关键码。
(2)R 最高属于第几范式。
(3) 将 R规范到 3NF。