1、期中考核习题1在基本关系中,下列说法正确的是( )。A、行列顺序有关 B、 属性名允许重名 C.任意两个元组不允许重复 D. 列是非同质的2关系代数的五种基本操作是( )。A、并、交、差、笛卡尔积、除法 B、并、交、选择、笛卡尔积、除法 C、并、交、选择、投影、除法 D、并、差、选择、笛卡尔积、投影34 元关系 R 为:R(A,B, C,D) ,则( )。A、 为取属性值为 A、C 的两列组成 B、 为取属性值为 1、3 的两列组成,C 1,3RC、 与 是等价的 D、 与 是不等价的,1,3 ,AC1,34采用二维表格结构表达实体类型及实体间联系的数据模型是( )。A、层次模型 B、网状模型
2、 C、关系模型 D、实体联系模型5 表示( )。32SA、从 S 关系中挑选 3 的值小于第二个分量的元组B、从 S 关系中挑选 3 个分量的值小于 2 的元组C、从 S 关系中挑选第 3 个分量值小于第二个分量的元组D、向关系垂直方向的运算6R 为四元关系 R(A,B,C,D) ,S 为三元关系 S(B,C,D),RS 构成的结果集为 ( )元关系。A、4 B、 3 C、7 D、 67R 为四元关系 R(A,B,C,D) ,S 为三元关系 S(B,C,D),R S 构成的结果集为 ( )元关系。A、4 B、 3 C、7 D、 68关系模式 S (A,B,C ,D)代数中的 等价于如下的( )
3、语句。32SA、ELECT * FROM WHERE 60 ANDG=60 AND G60 AND G=60 AND G=(SELECT Grade FROM SC WHERE Cno=C2)B、SELECT Sno FROM SC WHERE Cno=2 AND Grade IN (SELECT Grade FROM SC WHERE Cno=C2)C、SELECT Sno FROM SC WHERE Cno=2 AND Grade NOT IN (SELECT Grade FROM RP Q T Y2 b c d9 a e f2 b e f9 a d e7 g e f7 g c dWT Y
4、 Bc d mc d nd f nDT Yc de fSC WHERE Cno=C2)D、SELECT Sno FROM SC WHERE Cno=2 AND Grade=ALL (SELECT Grade FROM SC WHERE Cno=C2)1DBMS 是指 数据库管理系统 ,它是位于 用户 和 操作系统 之间的一层管理软件。2关系代数中的连接运算中当 为“”的连接称之为 等值连接 ,且当比较的分量是相同的属性值是,则成为 自然连接 。3关系的完整性分为 实体完整性 、 参照完整性 、 用户自定义完整性 三类。4SQL 是 结构化查询语言 。5. 在 SELECT 语句中, where
5、 子句用于选择满足条件的元组,使用 group by 子句用可按指定列的值分组,同时使用 having 子句可以提取满足条件的组。6. 在 SQL 中,在 WHERE 子句的条件表示式中,字符串匹配的操作符是 like ; 与 0 个或多个字符串匹配的通配符是 % ;与单个字符串匹配的通配符是 。 7子查询的条件依赖于父查询,这类查询称为 相关子查询 。8设有如下关系表 R,S 和 T:R(BH,XM,XB,DWH)S(DWH,DWM)T(BH,XM,XB,DWH)实现 的 SQL 语句是 select * from R union select * from T 。TR9. SQL 中的自主
6、存取控制是通过 Grant 和 Revoke 语句完成。10. DBA 利用 Grant 语句将某类数据的操作权限赋予用户。1.设有如下图所示的关系 R, W,D,计算:(1) 1,()YTR(2) 25Pe(3) 3W(4) 42,4635()RRD(5) 5得分 阅卷人二、 填空题(三、 简答题(60 分)R1Y Td cf ee dR2P Q T Y9 a e f7 g e fR4Q P Yb 2 da 9 fb 2 fg 7 fg 7 dR3P Q T Y B2 b c d m2 b c d n7 g c d m7 g c d nR5P Q 2 b7 g表 1 学生表 S学号 sno
7、姓名 sname 性别 sex 年龄 age 所在院系 sdept200101 张萧虎 男 18 信息院200102 李云刚 女 20 英语系210101 郭敏星 女 18 计算机学院210102 高灵 女 21 数学系各个小题的结构如下图所示:答:各个小题的结构如下图所示:2. (本题 10 分)什么是基本表?什么是视图?两者的区别是什么?3.已知学生表 S、任课表 C 和选课表 SC 如表 13 所示:用关系代数表示下列查询:表 2 任课表 C课程号cno课程名cname教师tnamec1 数学 王文刚c2 英语 章亮c3 C 语言 张林c4 数据库 张林表 3 选课表 SC学号 sno
8、课程号 cno 成绩 grade200101 c1 90200101 c2 87200101 c3 72210101 c1 85210101 c2 62表 1 学生表 S学号 sno 姓名 sname 性别 sex 年龄 age 所在院系 sdept200101 张萧虎 男 18 信息院200102 李云刚 女 20 英语系210101 郭敏星 女 18 计算机学院210102 高灵 女 21 数学系(1) 检索“张林”老师所授课程号 cno 和课程名 cname)(,)(张 林 Ccnameotchr(2) 检索选修了课程名 cname 为“C 语言” 的学生的学号 sno)( )(语 言
9、SsCcname(3) 检索“高林”同学所选修课程的课程号 cno 及课程名称 cname,( )snaeoCS高 林 ( )(4) 检索至少选修两门课程的学生的学号 cno1425()sS( )(5) 检索全部学生都选修课程的课程号 cno 和课程名 cname)()(,)(, SsnoCcsnoCcnameso或 ,cameS4对题 2 中的学生表 S、任课表 C 和选课表 SC,用 SQL 语句完成如下数据库操作:(1) 创建一个名称为 Stu_Info 的视图,视图中包括学生的学号、姓名、课程名称和成绩;CREATE VIEW stu_info asSELECT S.sno,sname
10、,cname,gradeFROM S,SC,CWHERE S.sno=SC.sno and SC.cno=C.cno或 CREATE VIEW stu_info asSELECT S.sno,sname,cname,gradeFROM S INNER JOIN SC INNER JOIN CON SC.cno=C.cno ON S.sno=SC.sno(2) 利用视图 Stu_Info 查询成绩在 80 分(包括 80)和 90 分(包括 90)之间的学生的学号、姓名和课程名称。select sno,sname,cname from stu_info where grade between 8
11、0 and 90(3) 查询年龄在 1925 岁(包括 19 岁和 25 岁)之间的学生的姓名、院系和年龄,并按年龄的降序排序;SELECT sname,sdept,age FROM S where age between 19 and 25 ORDER BY age DESC(4) 查询姓名中包含了“国”字的学生档案情况;SELECT* FROM S WHERE sname like 国%(5) 求平均成绩在 85 分以上(含 85 分)的各门课程号和平均成绩,且列标题分别为“课程号”和“平均成绩”SELECT cno as 课程号,avg(grade) as 平均成绩 FROM SC GR
12、OUP BY cno having avg(grade)=85(6) 将学号为“210102”的同学的姓名修改为 “赵勤”,年龄修改为 19 岁,所在院系修改为“计算机学院”UPDATE S SET sname= 赵勤 , age=18, sdept= 计算机学院 WHERE sno=210102(7) 查询没有选修任课表 C 表中任何课程的学生的学号和姓名。SELECT sno,sname from s WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.sno=S.sno)(8) 查询每个学生所选课程的平均成绩、最高分、最低分和选课门数。SELECT av
13、g(grade), max(grade), min(grade), count(sno) from SC group by sno(9) 查询选修了全部课程的学生姓名。Select sname from s where not exists(select * from c where not exists(select * form sc where sc.sno = s.sno and o=o)(10) 查询其他系中比信息院的学生年龄都小的学生姓名和年龄。select sname, sage from student where sage IS或select sname, sage from
14、 student where sage IS(11) 查询所有课程的总学分数和平均学分数,以及最高学分和最低学分。s select sum(credit) as 总 credit,avg(credit) as 课程平均学分,max(credit) as 最高学分,min(credit) as 最低学分 from course(12) 在 S 表中插入一条学生记录(200301, 刘云, 女, 18, 计算机学院)。Insert into s(sno, sname, ssex, sage, sdept) values (200301, 刘云, 女, 18, 计算机学院)(13) 查询每个学生的课程成绩最高的成绩信息(sno ,cno ,grade)。select * from grade A where grade=(select max(grade) from sc where sno=A.sno )(14) 将所有选修“数学” 课程的学生成绩提高为原来的 5;Update sc set grade=grade+grade*0.05 where cno in (select cno from c where cname=数学)(15) 删除所有“信息院” 的学生信息。Delete from s where sdept= 信息院