数据库系统概论试题及答案(1)(3)

2019-03-09 21:53

主关键字是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 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

FROM S

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

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

CNO=’C1’

AND

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’ (3)UPDATE S_CS_VIEW SET SNAME=’ 王慧平’ WHERE SNAME=’ 王平’

(4) CREATE VIEW datascore_view AS

SELECT SNO 学号、SNAME 姓名、

GRADE 成绩

FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO AND COURSE.CNO=SC.CNO AND CNAME=’ 数据库’

第4章数据库的安全性

一、选择题

1、下面哪个不是数据库系统必须提供的数据控制功能 。

A.安全性

B.可移植性

C.完整性

D.并发控制 答案:B

2、保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的 。

A.安全性

B.完整性

C.并发控制

D.恢复 答案:A

3、数据库的 完整性 是指数据的正确性和相容性。

A.安全性

B.完整性

C.并发控制

D.恢复 答案:B

4、在数据系统中,对存取权限的定义称为 。

A.命令

B.授权

C.定义

D.审计 答案:B

5、数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的 。

A.可靠性

B.一致性

C.完整性

D.安全性 答案:D

6、下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功

能的是

A.REVOKE UPDATE(XH) ON TABLE FROM ZHAO B.REVOKE UPDATE(XH) ON TABLE FROM PUBLIC

C.REVOKE UPDATE(XH) ON STUD FROM ZHAO D.REVOKE UPDATE(XH) ON STUD FROM PUBLIC

答案:C

7、把对关系SC的属性GRADE的修改权授予用户ZHAO的SQL语句是 A)GRANT GRADE ON SC TO ZHAO B)GRANT UPDATE ON SC TO ZHAO C)GRANT UPDATE (GRADE) ON SC TO ZHAO D)GRANT UPDATE ON SC (GRADE) TO ZHAO 答案:C

8、在SQL Server 中删除触发器用( )。

A.ROLLBACK B. DROP C.DELALLOCATE D. DELETE 答案:B 二、填空题

1、保护数据安全性的一般方法是 设置用户标识和存取权限控制 。 答案:设置用户标识和存取权限控制

2、安全性控制的一般方法有①、②、③、④和视图的保护五级安全措施。答案:①用户标识鉴定 ②存取控制 ③审计 ④数据加密

3、存取权限包括两方面的内容,一个是 ① ,另一个是 ②。 答案:①要存取的数据对象 对此数据对象进行操作的类型

4、在数据库系统中对存取权限的定义称为授权 。 答案:授权

5、在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用 ① 语句,收回所授的权限使用 ② 语句。 答案:①GRANT ②REVOKE

6、DBMS存取控制机制主要包括两部分:自主存取控制,_强制存取控制_______________。 答案:强制存取控制

7、 当对某一表进行诸如( )、 ( )、 ( ) 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句。

答案:INSERT,DELETE,UPDATE

第5章数据库完整性

一、选择题:

1、在数据库系统中,保证数据及语义正确和有效的功能是 ( )

A.并发控制 B.存取控制 C.安全控制 D.完整性控制 答案:D

2、关于主键约束以下说法错误的是( )

A. 一个表中只能设置一个主键约束 B.允许空值的字段上不能定义主键约束

C.允许空值的字段上可以定义主键约束 D.、可以将包含多个字段的字段组合设置为主键 答案:C

3、在表或视图上执行除了( )以外的语句都可以激活触发器。 A.Insert 案:D

4、数据库的____是指数据的正确性和相容性。

A.安全性 B.完整性 C.并发控制 D.恢复 答案:B

B. Delete

C. Update

D. Create 答

5、在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的________约束。 A、实体完整性B、参照完整性C、用户自定义D、用户操作 答案:C 二、填空题

1.数据库的完整性是指数据的 ① . ②__和 ③ 。答案:①实体完整性 ②参照完整性 ③用户定义完整性

2、实体完整性是指在基本表中,主属性不能取空值 。 答案:主属性不能取空值 3、参照完整性是指在基本表中, 。 答案:外码可以是空值或者另一个关系主码的有效值

4、为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS就 。答案:拒绝此操作

三、设计题

在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表中是否存在,检查该记录的课程号在课程表中是否存在,及选课成绩是否在0到100范围,若有一项为否,则不允许插入。

答案:

create trigger stu_ins_tri on sc for insert as begin

declare @s# char(6),@c# char(5),@grade int select @s#=sno,@c#=cno,@grade=score from inserted

if (@s# not in(select sno from student)) or (@c# not in (select cno from course) )or (@grade not between 0 and 100)

rollback transaction else

print '成功插入' end

第6章关系数据理论

一、选择题


数据库系统概论试题及答案(1)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:西北办事处、销售处成立策划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: