1、习 题 二(Page 54)/*14. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项操作: 给学生表增加一属性Nation(民族),数据类型为Varchar(20); */ALTER TABLE Student ADD Nation VARCHAR (20);/* 删除学生表中新增的属性Nation;*/ALTER TABLE Student DROP COLUMN Nation;/* 向成绩表中插入记录(2001110,3,80);*/INSERT INTO Grade VALUES (2001110,3,80);/* 修改学号为2001110的学生的成绩为70分;*/UPDAT
2、E Grade SET Gmark=70 WHERE Sno=2001110;/* 删除学号为2001110的学生的成绩记录;*/DELETE FROM Grade WHERE Sno=2001110;/* 为学生表创建一个名为IX_Class的索引,以班级号的升序排序;*/CREATE INDEX IX_Class ON Student(Clno) ;/* 删除IX_Class索引。*/DROP INDEX Student.IX_Class;/*15. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项查询: 找出所有被学生选修了的课程号;*/select DISTINCT Cno f
3、rom Grade;/* 找出01311班女学生的个人信息;*/select * from Student where Clno=01311 and Ssex=女;/* 找出01311班、01312班的学生姓名、性别、出生年份;*/select Sname,Ssex,2006-Sage 出生年份 from Student where Clno in (01311, 01312);/* 找出所有姓李的学生的个人信息;*/select * from Student where Sname like (李%); /* 找出学生李勇所在班级的学生人数;*/select Number from Clas
4、s where Clno= (select Clno from Student where Sname=李勇);/* 找出课程名为操作系统的平均成绩、最高分、最低分; */select Avg(Gmark), Max (Gmark), Min (Gmark) from Grade where Cno in (select Cno from Course where Cname=操作系统); /* 找出选修了课程的学生人数;*/select COUNT( DISTINCT Sno) from Grade; 找出选修了课程操作系统的人数Select count( distinct sno) fro
5、m grade Where cno in (select cno from course where cname =操作系统) 找出2000级计算机软件班的成绩为空的学生姓名Select sname from student where cno in (select clno from class where speciality=计算机软件 and inyear=2000)And sno in (select sno from grade where gmark is null)/*16. 针对以上表2-5中的四个表, 用SELECT的嵌套查询完成以下各项查询: 找出与李勇在同一个班级的学生
6、信息;*/select * from Student where Clno in (select Clno from Student where Sname=李勇); 找出所有与学生李勇有相同选修课程的学生信息;select * from Student where Sno in (select Sno from Grade where Cno in (select Cno from Grade where Sno in (select Sno from Student where Sname=李勇); 找出年龄介于学生李勇的年龄和25岁之间的学生信息;select * from Studen
7、t where Sage BETWEEN (select Sage from Student where Sname=李勇) and 25; 找出选修了课程操作系统的学生学号和姓名;select Sno, Sname from Student where Sno in (select Sno from Grade where Cno in (select Cno from Course where Cname=操作系统); 找出所有没有选修1号课程的学生姓名 Select sname from student where sno not in (select sno from grade wh
8、ere cno=1) 找出选修了全部课程的学生姓名 Select sname from student where sno in (select sno from grade where cno = all (select cno from course ) SELECT sname FROM student WHERE NOT EXISTS ( SELECT * FROM course WHERE NOT EXISTS ( SELECT * FROM Grade WHERE Sno=Student.Sno AND Cno=Course.Cno ) );对Student中的每个元组依次取Cou
9、rse中的每个元组, 每次按Student的Sno和Course的Cno 在grade中找相应元组; 若每次的结果都不为空, 则Student中对应的SNAME 为所选. 逐行扫描Student表中的每条记录,对每一个Sno,都顺序扫描Couse表, 读取每一个Cno;对于每一个Sno的(Sno,Cno),都在grade表中查找有没有与之对应的行。 如果某一个Sno,对于Couse表中的每一个Cno,都在grade表中都有一个相应的行与之对应,则这个Sno所对应的SNAME被显示。17. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项查询: 查询选修了3号课程的学生学号及其成绩,并按
10、成绩的降序排列;select Sno,Gmark from Grade where Cno=3 ORDER BY Gmark DESC; 查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列;select * from Student ORDER BY Clno,Sage DESC; 求每个课程号及相应的选课人数;select Cno,COUNT(Sno) 选课人数 from Grade GROUP BY Cno; 查询选修了3门以上课程的学生学号。select Sno from Grade GROUP BY Sno HAVING COUNT(*)3; (cno)318.
11、 针对以上表2-5中的四个表, 用 SQL 语言完成以下各项操作: 对每个班, 求学生的平均年龄, 并把结果存入数据库;ALTER TABLE Class ADD Avg_age int;UPDATE Class SET Avg_age=(select AVG(Sage) from Student GROUP BY Clno HAVING Student.Clno=Class.Clno); 将01311班的全体学生的成绩置零;UPDATE Grade SET Gmark=0 where Sno in (select Sno from Student where Clno=01311); /*加
12、不加引号都可执行。*/ 删除2001级计算机软件的全体学生的选课记录;DELETE from Grade where Sno in (select Sno from Student where Clno in (select Clno from Class where (Inyear=2001 and Speciality=计算机软件); 学生李勇退学,从数据库中删除有关他的记录 Delete from grade where sno= (select sno from student where sname=李勇)Delete from student where sname =李勇20.
13、成绩管理数据库的表结构说明中加入了完整性约束说明, 如表2-6所示, 请用 SQL 语句完成图中约束的说明。1)CREATE TABLE Student (Sno CHAR (7) NOT NULL,Sname VARCHAR (20) NOT NULL,Ssex CHAR (2) NOT NULL CHECK (Ssex IN (男, 女) DEFAUlT (男),Sage SmallINT CHECK (Sage14 AND Sage1 AND Number =0 AND Gmark 14 sage 20 (student)5)找出选修了课程操作系统的学生学号和姓名sno,sname (
14、cname=操作系统(studentGrade course ) 6)找出所有没有选修1号课程的学生姓名 sname (student) sname (cno=1(student Grade)7) 找出选修了全部课程的学生姓名 sname (sno,cno(Grade) cno(course))student ) 1.要保证数据库的数据独立性,需要修改的是( A )A.三层模式之间的两种映射B.模式与内模式 C.模式与外模式D.三层模式2.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( C )A.多对多 B.一对一 C.多对一 D.一对
15、多3.在视图上不能完成的操作是( C )A.更新视图B.查询C.在视图上定义新的基本表D.在视图上定义新视图 4.关系数据模型的三个组成部分中,不包括( C )A.完整性规则 B.数据结构C.恢复 D.数据操作5.在关系模式中,视图是三级模式结构中的 ( D )A. 内模式 B. 模式 C. 存储模式 D. 外模式6.在数据库的三级模式中,内模式有 ( A )A. 1 B. 2 C. 3 D. 多个7.三个模式之间存在下列映射关系,将正确的填入括号中(B )A.外模式/内模式 B.外模式/模式C.模式/模式 D.内模式/外模式8.数据的逻辑独立性是指(C )A.存储结构与物理结构的逻辑独立性B
16、.数据与存储结构的逻辑独立性C.数据与程序的逻辑独立性D.数据元素之间的逻辑独立性9.以下叙述中,属于结构冲突的是(B )A.同一对象在相同应用中具有不同的抽象B.同一对象在不同应用中具有不同的抽象C.同一实体在不同分E-R图中所包含的属性个数和属性排列次序完全相同D.以上叙述均不属于结构冲突10、在下列关于关系的陈述中,错误的是(B )A 表中任意两行的值不能相同B 表中任意两列的值不能相同C 行在表中的顺序无关紧要D 列在表中的顺序无关紧要11、关系数据库中,实现实体之间的联系是通过表与表之间的(D )A 公共索引B 公共存储C 公共元组D 公共属性12、有一个关系:学生(学号,姓名,系别
17、),规定学号的值域是8个数字组成的字符串,这一规则属于( C )A 实体完整性约束B 参照完整性约束C 用户自定义完整性约束D 关键字完整性约束13、下面有关主键的叙述正确的是( B )A 不同的记录可以具有重复的主键值或空值B 一个表中的主键可以是一个或多个字段C 在一个表中主键只可以是一个字段D 表中的主键的数据类型必须定义为自动编号或文本14、定义外键实现的是哪一(些)类完整性? ( B )A 实体完整性 B 参照完整性 C 用户定义的完整性 D 实体完整性、参照完整性和用户定义的完整性15、在下列关系代数的操作中,哪一个不属于专门的关系运算?( C)A 自然连接B 投影 C 广义笛卡尔
18、积D 连接16、从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是( C ) A.M端实体的关键字 B.N端实体的关键字 C.M端实体关键字与N端实体关键字组合D. 重新选取其他属性17、在SQL语言中,( )子句能够实现关系参照性规则。 ( D )A. PRIMARY KEY B. NOT NULL C. FOREIGN KEYD. FOREIGN KEY.REFERENCES.18、在数据库系统的三级模式结构中,用来描述数据的全局逻辑结构的是(3)(1)子模式 (2)用户模式 (3)模式 (4)存储模式19、下列哪种运算不属于关系代数的基本运算(1)(1
19、)连接 (2)笛卡尔积 (3) 相减 (4) 投影20不能激活触发器执行的操作是DA.DELETE B.UPDATEC. INSERT D.SELECT21关于对SQL对象的操作权限的描述正确的是_。AA. 权限的种类分为INSERT、DELETE和UPDATE三种B. 权限只能用于实表不能应用于视图C. 使用REVOKE语句获得权限D. 使用COMMIT语句赋予权限22关于事务的故障与恢复,下列描述正确的是_。DA. 事务日志是用来记录事务执行的频度B. 采用增量备份,数据的恢复可以不使用事务日志文件C. 系统故障的恢复只需进行重做(Redo)操作D. 对日志文件设立检查点目的是为了提高故障
20、恢复的效率23以下关于E-R图的叙述正确的是_。CA. E-R图建立在关系数据库的假设上B. E-R图使用过程和数据的关系清晰,实体间的关系可导出应用过程的表示。C. E-R图可将现实世界(应用)中的信息抽象地表示为实体以及实体间的联系D. E-R图能表示数据生命周期。24事务的ACID性质中,关于原子性(atomicity)的描述正确的是_。CA. 指数据库的内容不出现矛盾的状态。B. 若事力正常结束,即使发生故障,列新结果也不会从数据库中消失C. 事务中的所有操作要么都执行,要么都不执行D. 若多个事务同时进行,与顺序实现的处理结果是一致的。25设关系模式R(A,B,C),下列结论错误的是
21、_。CA若AB, BC,则ACB若AB, AC,则ABCC若BCA,则BA,CAD若BA ,CA,则BCA26允许取空值但不允许出现重复值的约束是_。BANULL BUNIQUECPRIMARY KEY DFOREIGN KEY27存在非主属性对码的部分依赖的关系模式是_。AAINFB2NFC3NF DBCNF28在某学校的综合管理系统设计阶段,教师实体在学籍管理子系统中被称为“教师”,而在人事管理子系统中被称为“职工”,这类冲突被称之为_。BA语义冲突 B命名冲突C属性冲突 D结构冲突29_能保证不产生死锁。BA两段锁协议 B一次封锁法30_,数据库处于一致性状态。AA采用静态副本恢复后 B
22、事务执行过程中C突然断电后 D缓冲区数据写入数据库后31一个事务执行过程中,其正在访问的数据被其他事务所修改,导致处理结果不正确,这是由于违背了事务的_而引起的。CA原子性 B一致性C隔离性 D持久性32在数据库中,存储冗余数据是( C )A不应该的 B. 应该且合理的 C. 合理的但不能过度冗余 D. 视情况而定33在数据库系统中,DBS与DB的关系是( A )A. DBS包括DB B. DB包括DBS C. 不一定的 D. 同级关系( )34关系模式R,S具有共同的属性X,且X是R的主码,则X称为S的( B )A. 主码 B. 外码 C. 关键字 D. 相对主码35关系R的实体完整性控制是
23、指 ( C )A. 主键非空 B. 主键唯一 C. 主键非空且唯一 D. 主键非空或唯一36在SQL的查询中,在“Where字段(子查询)”中子查询(A )返回多个记录。A. 不能 B. 能 C. 不一定 D. 能,但有限制37数据库的三级模式之间存在着两级映象,使数据库系统具有较高的数据(B )A相容性 B独立性 C共享性 D一致性38设有关系模式R(A,B,C),F=AB,CB。相对于F,R的候选键为(A )AAC BABC CAB DBC39设关系模式R(U),X、Y、Z是U的子集,且Z=U-X-Y下面关于多值依赖的叙述中,不正确的是(D )A若XY,则XZ B若XY,且Y是 Y的子集,
24、则XYC若XY,则XY D若z=,则XY40以下关于事务调度和封锁的描述中,正确的是(A )A遵守两段封锁协议的并发事务一定是可串行化的B可串行化的并发事务一定遵守两段封锁协议C遵守两段封锁协议的并发事务不一定是可串行化的D遵守两段封锁协议的并发事务一定不会产生死锁41. 表示数据库的概念模型一般使用(C )。A.用户活动图 B.数据流图C.ER图 D.流程图42在事务依赖图中,若各个事务之间的依赖关系构成循环,则就会出现(A )A死锁 B共享锁 C活锁 D排它锁43将ER模型转换成关系模型,属于数据库的(C )A需求分析 B概念设计 C逻辑设计 D物理设计44SQL语言中,用GRANTREV
25、OKE语句实现数据库的(D )A并发控制 B完整性控制 C一致性控制 D安全性控制45.三个模式之间存在下列映射关系,将正确的填入括号中(B ) A.外模式/内模式 B.外模式/模式 C.模式/模式 D.内模式/外模式46.数据的逻辑独立性是指(C ) A.存储结构与物理结构的逻辑独立性 B.数据与存储结构的逻辑独立性 C.数据与程序的逻辑独立性 D.数据元素之间的逻辑独立性47、SQL语言中,删除一个表的命令是(B ) A DELETE B DROP C CLEAR D REMORE48、在下列关于关系的陈述中,错误的是(B ) A 表中任意两行的值不能相同 B 表中任意两列的值不能相同 C
26、 行在表中的顺序无关紧要 D 列在表中的顺序无关紧要49、有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C ) A 实体完整性约束 B 参照完整性约束 C 用户自定义完整性约束 D 关键字完整性约束50、设关系R和S的属性个数为r和s ,则(R*S)操作结果的属性个数为 ( A )A r+s B r-s C r*sD max(r+s)51、在SQL语言中,条件“RETWEEN 20 AND 30”表示年龄在20到30之间,且(A)包括20岁和30岁B 不包括20岁和30岁C 包括20岁不包括30岁D 不包括20岁包括30岁52、下面有关主键的叙述正
27、确的是( B )A 不同的记录可以具有重复的主键值或空值B 一个表中的主键可以是一个或多个字段C 在一个表中主键只可以是一个字段D 表中的主键的数据类型必须定义为自动编号或文本53、有关系R和S,RS的运算等价于( B )A. S-(R-S) B. R-(R-S) C. (R-S)SD. R(R-S)54、取出关系中的某些列,并消去重复的元组的关系运算称为( B )A.取列运算 B.投影运算 C.连接运算 D.选择运算55、根据关系数据基于的数据模型关系模型的特征判断下列正确的一项:( B )A、只存在一对多的实体关系,以图形方式来表示。B、以二维表格结构来保存数据,在关系表中不允许有重复行存
28、在。C、能体现一对多、多对多的关系,但不能体现一对一的关系。D、关系模型数据库是数据库发展的最初阶段56、数据库三级模式体系结构的划分,有利于保持数据库的 ( A )A 数据独立性 B 数据安全性 C 结构规范化D 操作可行性57、假定学生关系是S(SNO,SNAME,SEX,AGE) 课程关系是C(CNO,CNAME,CREDIT) 学生选课关系是SC(SNO,CNO,GRADE)要查找选修“数据库”课程的女学生的姓名,将涉及到的关系 ( D )A SB C,SC C S,SCD S,C,SC58、定义外键实现的是哪一(些)类完整性? ( B )A 实体完整性 B 参照完整性 C 用户定义的
29、完整性 D 实体完整性、参照完整性和用户定义的完整性59、在下列关系代数的操作中,哪一个不属于专门的关系运算?( C)A 自然连接B 投影 C 广义笛卡尔积D 连接60、下面所列条目中,哪一条不是标准的SQL语句? ( B )A ALTER TABLEB ALTER VIEW C CREATE TABLED CREATE VIEW61、在SQL语言中,( )子句能够实现关系参照性规则。 ( D )A. PRIMARY KEY B. NOT NULL C. FOREIGN KEYD. FOREIGN KEY.REFERENCES. 62、从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是( C ) A. M端实体的关键字 B. N端实体的关键字 C. M端实体关键字与N端实体关键字组合D. 重新选取其他属性