您的位置:首页 > 数据库

第3部分 关系数据库标准语言 SQL(2)

2010-01-03 21:34 477 查看
6. [/b]什么是基本表?什么是视图?两者的区别和联系是什么? [/b]
  答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
  视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
  
7. [/b]试述视图的优点。[/b]
  答:(1)视图能够简化用户的操作。
   (2)视图使用户能以多种角度看待同一数据。
   (3)视图对重构数据库提供了一定程度的逻辑独立性。
   (4)视图能够对机密数据提供安全保护。
  
8. [/b]所有的视图是否都可以更新?为什么?[/b]
  答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩)
   CREAT VIEW S_G(Sno,Gavg)
   AS SELECT Sno,AVG(Grade)
   FROM SC
   GROUP BY Sno;
  要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。
  
9. [/b]哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。[/b]
  答:基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。
  若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。
  如《概论》3.5.3中的S_G视图。
  
10. [/b]试述某个你熟悉的实际系统中对视图更新的规定。[/b]
  答:(略)
  解析:不同的系统对视图更新的规定是不同的,读者必须了解你所用系统对视图更新的规定。
11. [/b]请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件[/b]
  代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
   (1)找出三建工程项目使用的各种零件代码及其数量。
   (2)找出供应商S1的供应情况。
  答:建视图:
   CREATE VIEW V_SPJ AS
   SELECT SNO, PNO, QTY
   FROM SPJ
   WHERE JNO=
   (SELECT JNO
   FROM J
   WHERE JNAME='三建');
   对该视图查询:
   (1) 找出三建工程项目使用的各种零件代码及其数量。
   SELECT PNO, QTY
   FROM V_SPJ;
   (2) 找出供应商S1的供应情况。
   SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量*/
   FROM V_SPJ
   WHERE SNO='S1';

三、填空问答题

1 .试述SQL语言的特点。 (填空题)

2 .SQL的中文全称是________________。 (问答题)

3 .试述SQL的定义功能。 (填空题)

4 .SQL语言除了具有数据查询和数据操纵功能之外,还具有________和________的功能,它是一个综合性的功能强大的语言。 (问答题)

5 .在关系数据库标准语言SQL中,实现数据检索的语句命令是________。 (问答题)

6 .用SQL语句建立第2章习题5中的四个表。 (填空题)

7 .在SQL语言的结构中,________有对应的物理存储,而________没有对应的物理存储。 (问答题)

8 .针对上题中建立的四个表试用SQL语言完成第2章习题5中的查询。 (填空题)

9 .针对习题3中的四个表试用SQL语言完成以下各项操作:
(1) 找出所有供应商的姓名和所在城市。
(2) 找出所有零件的名称、颜色、重量。
(3) 找出使用供应商S1所供应零件的工程号码。
(4) 找出工程项目J2使用的各种零件的名称及其数量。
(5) 找出上海厂商供应的所有零件号码。
(6) 找出使用上海产的零件的工程名称。
(7) 找出没有使用天津产的零件的工程号码。
(8) 把全部红色零件的颜色改成蓝色。
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。 (填空题)

10 .关系R(A,B,C)和S(A,D,E,F),R和S有相同属性A,若将关系代数表达式:πR.A,R.B,S.D,S.F(R∞ S)用SQL语言的查询语句表示,则为: SELECT R.A,R.B,S.D,S.F FROM R,S WHERE________________。 (问答题)

11 .什么是基本表?什么是视图?两者的区别和联系是什么? (填空题)

12 .视图是从________中导出的表,数据库中实际存放的是视图的________。 (问答题)

13 .试述视图的优点。 (填空题)

14 .关系数据操作语言(DML)的特点是:操作对象与结果均为关系、操作的________、语言一体化并且是建立在数学理论基础之上。 (问答题)

15 .设有如下关系表R、S、T: R(BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH)(1) 实现R∪T的SQL语句是__。(2) 实现σ DWH=’100’ ? 的SQL语句是__。(3) 实现πXM,XB ? 的SQL语句是__。(4) 实现πXM,DWH (σ XB=’女’ ?) 的SQL语句是__。(5) 实现R∞S的SQL语句是__。(6) 实现πXM,XB,DWH (σ XB=’男’ (R∞S)) 的SQL语句是__。 (问答题)

16 .所有的视图是否都可以更新?为什么? (填空题)
答:
不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) /*设SC表中“成绩”列Grade为数字型*/ FROM SC GROUP BY Sno;要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。

17 .设有如下关系表R:R(NO,NAME,SEX,AGE,CLASS),主码是NO (1) 插入一个记录(25,“李明”,“男”,21,“95031”);___。(2) 插入“95031”班学号为30,姓名为“郑和”的学生记录;____。(3) 将学号为10的学生姓名改为“王华”;_____。(4) 将所有“95101”班号改为“95091”;_____。(5) 删除学号为20的学生记录;____。(6) 删除姓“王”的学生记录;___。 (问答题)
(1) INSERT INTO R VALUES(25,"李明","男",21,"95031")
(2) INSERT INTO R(NO,NAME,CLASS) VALUES(30,"郑和","95031")
(3) UPDATE R SET NAME="王华" WHERE NO=10
(4) UPDATE R SET CLASS="95091" WHERE CLASS="95101"
(5) DELETE FROM R WHERE NO=20
(6) DELETE FROM R WHERE NAME LIKE “王%

18 .哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。 (填空题)
答:
基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。 若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。如《概论》3.5.3中的S_G视图。

19 .请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
(1) 找出三建工程项目使用的各种零件代码及其数量。
(2) 找出供应商S1的供应情况。 (填空题)
答:
建视图: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME='三建'); 对该视图查询:
(1) 找出三建工程项目使用的各种零件代码及其数量。 SELECT PNO, QTY FROM V_SPJ;
(2) 找出供应商S1的供应情况。 SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量*/ FROM V_SPJ WHERE SNO='S1';

20 .针对习题3建立的表,用SQL语言完成以下各项操作: (1) 把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。 (2) 把查询SPJ表和修改QTY属性的权限授给用户李天明。 (填空题)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息