第一范文网 - 专业文章范例文档资料分享平台

第三章关系数据库标准语言SQL

来源:用户分享 时间:2025/5/30 7:34:04 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(4)视图能够对机密数据提供安全保护:由于可以对不同的用户定义不同的视图,让机密数据不出现在不应看到这些数据的用户视图上,就自动实现了对这些机密数据的安全保护功能。

【习3-8】 所有的视图是否都可以更新?为什么?

答:在关系数据库中,并不是所有的视图都是可更新的。因为对视图的更新,最终是要转换为对基本表的更新,但有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。 【习3-9】 哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。

答:一般地,行列子集视图是可更新的。例如,将行列子集视图信息系学生视图IS_S中学号为“97003”的学生的年龄增加1。 UPDATE IS_S SET Sage=Sage+1

WHERE Sno=‘97003’ 转换后的更新语句为: UPDATE S

SET Sage=Sage+1

WHERE Sno=‘97003’AND Sdept=‘IS’

多表视图、带表达式的视图、分组视图、带有嵌套查询的视图等是不可更新的。例如: S_AVG为由“学号”和“平均成绩”组成的视图,如在该视图中插入学号为“97003”,平均成绩为89分的元组。 INSERT INTO S_AVG VALUES(‘97003’,89)

由于该更新无法转换成对基本表SC的更新,所以该视图是不可更新操作的。

【习3-11】 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY),针对该视图完成下列查询: CREATE VIEW SJ_SPJ

AS SELECT SNO, PNO, QTY

FROM SPJ, J

WHERE PJ.JNO=J,JNO AND JNAME=’三建’ (1)找出三建工程项目使用的各种零件代码及其数量。 SELECT PNO, SUM(QTY) FROM SJ_SPJ GROUP BY PNO

(2)找出供应商S1的供应情况。 SELECT *

FROM SJ_SPJ

WHERE SNO=’S1’

【习3-12】 针对习题3建立的表,用SQL语言完成以下各项操作:

(1)把对表S的INSERT的权限授予用户张勇,并允许他再将此权限授予其他用户。 解:GRANT INSERT ON TABLE S TO 张勇

WITH GRANT OPTION

(2)把查询SPJ表和修改QTY属性的权限授给用户李天明。 解:GRANT SELECT,UPDATE(QTY)

ON TABLE SPJ TO 李天明

【习3-13】在嵌入式SQL中是如何区分SQL语句和主语言语句的?

答:在嵌入式SQL中,为了能够区分SQL语句与主语言语句,所有SQL语句都加上前缀EXEC SQL。

【习3-14】在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通讯的? 答:数据库工作单元与源程序工作单元之间的通讯方式如下: (1)通过SQL通信区,向主语言传递SQL语句的执行状态信息。 (2)主语言使用主变量向SQL语句提供参数。

(3)使用主变量和游标,将SQL语句查询数据库的结果交主语言进一步处理。

【习3-15】在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?

答:在嵌入式SQL中引入了游标来协调这两种不同的处理方式。游标是系统为用户开设的一个数据缓冲区,用来存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

思考题

一、名词解释

数据库,基本表,存储文件,视图,列,行,实表,虚表,相关子查询,连接查询,嵌套查询,交互式SQL,主变量,游标。

二、简答题

1.在宿主语言的程序中使用SQL语句有哪些规定? 2.嵌入式SQL语句何时不必涉及到游标? 3.视图的优点是什么?

4.建索引的目的是什么?是否索引建得越多越好? 5.基本表与视图两者的区别和联系是什么? 6.所有视图是否都可以更新?为什么?

三、选择题

1.下面关于SQL语言的叙述中,哪一条是错误的( )。

A SQL既可作为联机交互环境中的查询语言又可嵌入到主语言中 B SQL没有数据控制功能

C 使用SQL用户只能定义索引而不能引用索引

D 使用SQL用户可以定义和检索视图。

2.SQL语言引入了视图的概念,下述说法正确的是( )。 A 视图是由若干表组成的,独立存储在数据库中 B 视图的存在提高了并发程度

C 视图与基本表的最大区别在于它是逻辑定义的虚表 D 视图不仅简化用户观点,而且提高查询效率 3.SQL语言是( )。

A 高级程序设计语言 B 编程语言 C 结构化查询语言 D 宿主语言

4.在学生关系中,用SQL语句列出所有女生的姓名,应该对学生关系进行( )。 A 选择 B 连接 C 投影 D 选择和投影

5.在学生数据库中,若打印学生的成绩单,包含学号、姓名、课号、成绩等属性列,应该对这些关系进行( )。

A 选择 B 连接和投影 C 投影 D连接和选择

6.NULL是指( )。

A 0 B 空格 C 无任何值 D空字符串 7.下列哪个不属于使用游标的步骤( )。

A 说明游标 B 删除游标 C 推进游标指针并取当前记录 D 打开游标 8.必须使用游标的嵌入式SQL语句的情况是( )。

A INSERT B CREATE TABLE C DELETE D 对于已知查询结果确定为多元组时 9.下列那条语句不属于SQL数据操纵功能范围( )。 A SELECT B CREATE TABLE C DELETE D INSERT 10.用( )命令可建立唯一索引。

A CREATE TABLE B CREATE CLUSTER C CREATE INDEX D CREATE UNIQUE INDEX

四、填空题

1.SQL语言的使用方式有两种,一种是( ),另一种是( )。 2.在SQL查询语句中,WHERE子句的功能是( )。 3.视图是一个虚表,它是从( )导出的表。 4.索引的用途是( )。

5.在SQL语言中,创建索引时保留字UNIQUE的作用是( )。 6.在SQL语言中,对数据库的数据进行更新的语句有( )、( )和( )。 7.SQL语言的数据操纵功能包括( )、( )和( )。 8.关系数据语言采取一次( )元组的存取方式。

9.SQL语言的数据查询是介于( )和( )之间的一种语言。

10.SQL数据定义部分包括对SQL模式、基本表、( )和( )的创建和撤消。 11.权限回收命令是( )。权限授予的命令是( )。 12.游标是系统为用户开设的( ),存放( )。

13.如果在查询结果中不允许出现重复元组时,在SELECT语句中增加保留字( )。 14.DELETE删除的最小单位是( )。

15.在SQL中的一个关系对应于一个( )。

16.数据库中只存放视图的( ),而不存放视图的( )。视图的定义存放在( )。 17.删除索引时,系统会同时从( )中删除有关该索引的描述。

18.用SQL的数据定义语句的( )子句定义学生关系的实体完整性,用( )子句定义学生关系的参照完整性。

19.在SQL支持的关系数据库三级模式结构中,外模式对应于( ),模式对应于( ),内模式对应于( )。

20.在SELECT语句中,HAVING子句必须跟在( )子句后面。

五、设计题

1.设有三个关系:S(S#, SNAME, AGE, SEX, ADDRESS)

学生(学号,姓名,年龄,性别,地址) SC(S#, C#, GRADE)

选修(学号,课程号,成绩) C(C#, CNAME, TEACHER)

课程(课程号,课程名,教师名)

试用SQL的查询语句表达下列查询:

(1) 检索年龄大于23岁的男生的学号和姓名。

(2) 检索学号S3的学生所学课程的课程名与认课教师名。

(3) 检索WANG同学不学的课程的课程号。 (4) (5) (6) (7)

检索至少选修两门课程的学生的学号。

检索全部学生都选修的课程的课程号与课程名。

检索成绩不及格的学生信息,要求显示(S#, SNAME, C#, CNAME, TEACHER)。 求LIU老师所授课的每门课程的学生平均成绩。

(8) 统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 (9) 检索学号比WANG同学大,而年龄比他小的学生姓名。 (10) 检索姓名以WANG打头的所有学生的年龄和姓名。 (11) 在SC中检索成绩为空值的学生学号和课程号。 (12) 求年龄大于所有女同学年龄的男学生姓名和年龄。

(13) 检索平均成绩大于80分的课程的课程号、课程名和任课教师。 (14) 查询每门课程选课的学生人数、最高成绩、最低成绩和平均成绩。 (15) 查询有一门以上(含一门)课程的成绩低于70分的学生的姓名。

2.设有两个关系R(A, B, C)和S(D, E, F),试用SQL查询语句表示下列五个关系代数表达式: (1)πA(R)

(2)σB=17(R) (3)R×S

(4)πA, F(σB=D( R×S)

(5)πA, B(σA=1∧B=15( R)

3.设有两个关系R(A, B, C)和S(A, B, C ),试用SQL查询语句表示下列四个关系代数表达式:

(1)R∪S ><(2)R∩S (3)R-S

(4)πA, B(R) πB,C(S)

4.试用SQL语言、更新语句表达对教学数据库中三个基本表S,SC,C的各个更新操作: (1) 往基本表S中插入一个学生元组(‘S’,‘WU’,18)。 (2) 在基本表S中检索每一门课程成绩都大于等于80分的学生的学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)中。 (3) 在基本表SC中删除尚无成绩的选课元组。 (4) 把WANG同学的学习选课和成绩全部删去。 (5) 把选修MATHS课不及格的成绩全改为零值。

(6) 把低于总平均成绩的女同学成绩提高5%。 (7) 在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。

(8)在SC表中,置LIU老师所授课程的所有成绩全部加上5分。 (9)从关系S,SC中,删除ZHANG老师所授课程和所有成绩的元组。

(10) 把平均成绩大于60分的课程的课程号和平均成绩存入另一个关系C_GRADE(C#, AVG_GRADE)中。

(11) 在关系S中,每个学生的年龄增加1。

(12) 把WANG老师所授课程的学生成绩(75分以下)提高5%。

(13)往基本表SC中插入成绩元组(‘S9’, ‘C1’, 89)和 (‘S8’, ‘C3’, 98),只使用一个插入语句。 5.“仓库管理”关系模型有五个关系模式:

搜索更多关于: 第三章关系数据库标准语言SQL 的文档
第三章关系数据库标准语言SQL.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c70dad50yqg862m61dlf1_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top