好文档 - 专业文书写作范文服务资料分享网站

数据库系统概论试题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。

(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。 (4)检索”李强”同学不学课程的课程号(C#)。 (5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为k1和k5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。

(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:

(1). ∏C#,CNAME(σTEACHER=‘程军’(C)) (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C))

(3). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]} (4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) ?? SC) (5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))

(6). ∏C#,CNAME(C?? (∏S#,C#(sc)÷∏S#(S))) (7). ∏S#(SC?? ∏C#(σTEACHER=‘程军’(C)))

(8). ∏S#,C#(sc)÷∏C#(σC#=’k1’∨ C#=’k5’(C)) (9). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(C)]} (10). ∏S#,C#(sc)÷∏C#(σS#=’2’(SC))

(11). ∏S#,SNAME{s?? [∏S#(SC?? σCNAME=‘C语言’(C))]} 关系R和S如下图所示,试计算R÷S。

R A a a a b b c c B b b b d d k k C c e h e d c e D d f k f l d f S

C c e D d f 第3章关系数据库标准语言SQL

一、选择题

1、SQL语言是 的语言,易学习。

A.过程化 B.非过程化 C.格式化 D.导航式 答案:B 2、SQL语言是 语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 答案:C 3、SQL语言具有 的功能。

A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制

C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 答案:B 4、SQL语言具有两种使用方式,分别称为交互式SQL和 。

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C

5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。 要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 。 A.S B.SC,C C.S,SC D.S,C,SC 答案:D

6、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作 不能执行。

A.从职工表中删除行(‘025’,‘王芳’,‘03’,720) B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中 C.将职工号为,‘001’的工资改为700 D.将职工号为,’038’的部门号改为‘03’ 答案:B 7、若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4) NOT NULL, NAME C(8) NOT NULL, SEX C(2), AGE N(2))

可以插入到student表中的是 。

A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)

C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23) 答案:B

第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。 8、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是 。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX

FROM S

WHERE SN=“王华”

C.SELECT SN,AGE,SEX FROM S

WHERE AGE>(SELECT AGE

WHERE SN=“王华”)

D.SELECT SN,AGE,SEX FROM S

答案:A

WHERE AGE>王华.AGE

9、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 。 A.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>=

(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) 答案:D

10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 。 A.SELECT S.SN,SC.C#,SC.GRADE FROM S

WHERE S.S#=SC.S#

B.SELECT S.SN,SC.C#,SC.GRADE FROM SC

WHERE S.S#=SC.GRADE 答案:C

11、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是 。

A.SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESC

HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE>=

(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN 答案:D

二、填空题

1、SQL是 。 答案:结构化查询语言

(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”

C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S#

D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)

2、视图是一个虚表,它是从 ① 中导出的表。在数据库中,只存放视图的 ② ,不存放视图的 ③ 。 答案:①一个或几个基本表 ②定义 ③视图对应的数据 3、设有如下关系表R:

R(No,NAME,SEX,AGE,CLASS) 主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。

①插入一个记录(25,“李明”,“男”,21,“95031”); 。 ②插入“95031”班学号为30、姓名为“郑和”的学生记录; 。 ③将学号为10的学生姓名改为“王华”; 。 ④将所有“95101”班号改为“95091”; 。 ⑤删除学号为20的学生记录; 。 ⑥删除姓“王”的学生记录; 。

答案:

①INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) ②INSERT INTO R(NO,NAME,CLASS) VALUES(30,“郑和”,“95031”) ③UPDATE R SET NAME=“王华”WHERE NO=10

④UPDATE R SET CLASS=“95091”WHERE CLASS=“95101” ⑤DELETE FROM R WHERE NO=20

⑥DELETE FROMR WHERE NAME LIKE“王%”

第3章书面作业

1、设学生课程数据库中有三个关系:

学生关系S(S#,SNAME,AGE,SEX) 学习关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME)

其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。

用SQL语句表达下列操作

(1)检索选修课程名称为“MATHS”的学生的学号与姓名 (2)检索至少学习了课程号为“C1”和“C2”的学生的学号

(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄 (4)检索平均成绩超过80分的学生学号和平均成绩 (5)检索选修了全部课程的学生姓名 (6)检索选修了三门课以上的学生的姓名

答案:(1)SELECT SNAME,AGE FROM S,SC,C

WHERE S.S#=SC.S# AND C.C#=SC.C#

AND CNAME=’ MATHS’ (2) SELECT S# FROM SC

WHERE CNO=’C1’ AND S# IN( SELECT S# FROM SC WHERE CNO=’C2’)

(3)SELECT S#,SNAME,AGE FROM S

WHERE AGE BETWEEN 18 AND 20 (4) SELECT S# ,AVG(GRADE) ‘平均成绩’ FROM SC GROUP BY S#

HAVING AVG(GRADE)>80 (5) SELECT SNAME

2、设学生-课程数据库中包括三个表:

学生表:Student (Sno,Sname,Sex,Sage,Sdept) 课程表:Course(Cno,Cname,Ccredit) 学生选课表:SC(Sno,Cno,Grade)

FROM S

WHERE NOT EXISTS

(SELECT * FROM C

WHERE NOT EXISTS (SELECT * FROM SC

WHERE S#=S.S# AND C#=C.C# )

)

(6) SELECT SNAME FROM S,SC WHERE S.S#=SC.S# GROUP BY SNAME

HAVING COUNT(*)>3

其中Sno、Sname、Sex、Sage、Sdept、 Cno、Cname、Ccredit 、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。 试用SQL语言完成下列项操作:

(1)查询选修课程包括“1042”号学生所学的课程的学生学号

(2)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Sex性别; (3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平

(4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。 答案:(1) SELECT DISTINCT SNO FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY

WHERE SCY.SNO = ' 1042'

AND

NOT EXISTS (SELECT *

FROM SC SCZ WHERE

SCZ.SNO=SCX.SNO AND

SCZ.CNO=SCY.CNO)); (2) CREATE VIEW S_CS_VIEW AS

SELECT SNO,SNAME,SEX FROM STUDENT WHERE Sdept=’CS’

数据库系统概论试题及答案

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。(4)检索”李强”同学不学课程的课程号(C#)。(5)检索至少选修两门课程的学生学号(S#)。(6
推荐度:
点击下载文档文档为doc格式
6ey9h565pe7wp9920t0g
领取福利

微信扫码领取福利

微信扫码分享