ASC选项表示升序, DESC选项表示将序.
6. SELECT语句中进行查询,若希望查询的结果不出现重复元组,应在SELECT子句中使用
DESTINCT保留字.
7. 在SQL中,WHERE子句的条件表达式中,字符串匹配的操作符是LIKE;与0个或多个字
符匹配的通配符是 % 与单个字符匹配的通配符是 - .
8. 如果外连接符出现在连接条件的右边称之为右连接符,出现在连接条件的左边称之为
左连接符.
9. 子查询的条件不依赖与父查询,这类查询称之为不相干子查询,否则称之为相干子查
询.
10. 若一个视图是从单个基本表中导出来的,并且只是去掉了基本表的某些行和某些列,
但保留了码,我们称这类视图为列子集视图. 11.SQL是结构化查询语言。
12.SQL语言的数据定义功能包括数据查询、数据操纵、数据定义和数据控制。 13.视图是一个虚表,它是从.一个或几个基本表中导出的表。在数据库中,只存放视图的定义 不存放视图的视图对应的数据。 三.简答题
1. 什么是基本表?什么是视图?两者的区别是什么?
答:基本表是独立存在的表,在SQL中,一个关系对应于一个表,一个表对应与一个存储文件。视图是在创建时,将其定义存放在存放在数据字典中,并不存放视图对应的数据,因此视图是从一个或几个基本表中导出来的,它本身不独立存储在数据库中,是一个虚表。两者的区别是基本表是独立存于数据库中,而视图存放的只是视图的定义 2. 试述试图的优点. 视图的优点主要有四个方面:
1能够简化用户的操作; 2用户可以从多种角度看待数据;
3视图对重构数据库提供了一定程度的逻辑独立性; 视图能对机密数据提供安全保护 3.所有的视图都可以更新吗?为什么?
并不是所有的视图都可以更新,因为有些视图的更新不能惟一地有意义地转换成相对应的基本表的更新。
4.叙述SQL语言支持的三级逻辑结构。
5.叙述使用SQL语言实现各种关系运算的方法。
由Visual FoxPro支持的SQL语言没有提供关系的迪卡尔积、交和差运算。其他关系运算对应的SQL语句是: R∪S SELECT语句(生成R)
UNION
SELECT语句(生成S) 选择 SELECT* FROM〈表〉
WHERE〈指定选择的文件〉 投影 SELECT 〈投影字段列表〉 FROM 〈表〉
连接 SELECT 〈连接的字段列表〉 FROM 〈连接的两个表名〉 WHERE〈连接条件〉
6.设有图书登记表TS,具有属性:BNO(图书类别)、BNA(书名)、AU(著者)、
PUB(出版社)。按下列要求用SQL语言进行设计:
(1) 按图书编号BNA建立TS表的索引ITS。 (2) 查询按出版社统计其出版图书总数。 (3) 删除索引ITS。
*7、三个关系R、S和T如图3.3所示。
R S T A B C
A D E D F
d3 13
a1 b1 20 a1d1 15 d2 12 a2 b1 18 a1d2 24
图3.3关系R、S和T
a1 b2 22 a2d2 18 a2 b3a2
试用SQL语句实现如下操作:
(1) 将R 、S和T三个关系按关联属性建立一个视图R-S-T; (2) 对视图R-S-T按属性A 分组后,求属性C和E的平均值。 8、有关系R 和S 如图3.4所示
R
S A C
A B
a1 b1 a1 40 a2 b2 a2 50 a3 b3 a3 55 图3.4 关系R和S
试用SQL语句实现:
(1) 查询属性C>50时,R中与相关联的属性B之值。
(2) 当属性C=40时,将R 中与之相关联的属性B值修改为b4。 *9、知R和S两个关系如图3.5所示:
R
S
A B C C D E a1b1 c1 c1 d1e1 a2b2 c2
c2d2e2
图3.5 关系R和S
a3b3 c2 c3 d3e2 执行如下SQL语句:
(1) CREATE SQL VIEW H(A,BC,C,D,E)
AS SELECT A, B, R.C, D, E FEOM R, S WHERE R.C=S.C; (2) SELECT B , D, E
FROM H WHERE C=’C2’
试给出:(1)视图H;
(2)对视图H的查询结果
10.已知学生表S和学生选课表SC。其关系模式如下: S(SNO,SN,SD,PROV) SC(SNO,CN,GR)
其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。
试用SQL语句实现下列操作:
(1) 查询“信息系”的学生来自哪些省区。
(2) 按分数降序排列,输出“英语系”学生选修了“计算机”课程的学生的姓名
和分数。
*四. 综合题
1. 用SQL为供销数据库(图2_17)创建四个表:供应商,零件,工程项目,供应情况. 2. 请为三建工程项目建立一个供应商情况的视图,包括供应商号Sno,零件号Pno,数量
号Qty.针对该视图完成如下查询:
(1) 找出三建工程项目使用各种零件代码及数量; (2) 找出供应商S1的供应情况.
3. 根据本章习题四中的第一小题建立的表,用SQL语言完成以下操作:
(1) 把对S的INSERT权限授予用户张勇,并允许他将此权限授予其他用户;
(2) 把对SPJ表和修改QTY属性的权限授予用户李天明. 4. 对本章习题四中的第一小题用SQL语言完成以下操作:
(1) 找出所有供应商的姓名和所在城市; (2) 找出所有零件的名称,颜色和重量; (3) 找出使用供应商S1所供应零件的工程号码; (4) 找出工程项目J2使用的各种零件的名称及其数量; (5) 找出上海厂商供应的所有零件号码; (6) 找出使用上海产的零件的工程的名称; (7) 找出没有使用天津产的零件的工程号码; (8) 把全部红色零件的颜色改为蓝色;
(9) 有S5供给J4的零件P6改为由S3供应,请做必要的修改;
(10)从供应商关系中删除S2记录,并从供应情况关系中删除相应的记录; (11)请将(S2,J6,P4,200)插入供应情况关系. Ⅲ、答案
4.答:SQL语言支持的三级逻辑结构如图3.1所示 :
用户
SQL -
视图1 视图2
-------------------------------------------------------------------------------------------------------------
基本表1 基本表2 基本表3 基本表4 概念层 ---------------------------------------------------------------------------------------------------------
存储文件s1 存储文件s2 存储文件s3 存储文件s4 内层
图 3.1 SQL语言支持的三级结构
在概念层,对应概念模式的概念记录型的基本表。基本表是这样的一种表,它本身实际存在,在Visual FoxPro 中没个表在存储中可用一个存储文件来表示(在ORACLE中多个表存储在一个文件中),一个基本表就是一个关系,它不是由其他表导出的表。基本表是使用CREATE TABLE语句建立的。
在外层,用户所看到的可以是基本表,也可以是视图。视图是一个虚拟表,它是由一个或几个基本表导出的表,它不直接存在与物理存储器上的表。视图是使用CREATE SQL VIEW语句建立的。在内层,每个基本表用一个存储文件来表示,即
外层
用一组类型相同的存储记录值来表示。DBA可以对物理存储文件进行操作。 6.(1)USE TS
INDEX ON BNO TO ITS
(2)SELECT PUB,COUNT(BNO) FROM TS GROUP BY PUB (3)DELETE FILE ITS.IDX 7.(1)CREATE SQL VIEW R-S-T
AS SELECT R.A,B,C,S.D,E,F FROM R,S,T
WHERE R.A=S.A AND S.D=T.D (2)SELECT AVG(C),A AVG(E) FROM R-S-T GROUP BY A 8.(1)SELECT B
FROM R,S
WHERE R.A=S.A AND C>50 (2)UPDATE R SET B =‘b4’ WHERE A IN (SELECT A FROM S WHERE C=40)
9.本题结果如图3.6所示:
视图H 对视图H的查询结果 A B C D E B D E a1 b1 c1 d1 e1 b1 d2e2 a2 b2 c2 d2 e2 b2 d2e2 a3 b3c3 d3e3 图3.6 视图H及其查询结果 10.(1)SELECT DISDINCT PROV
FROM S
WHERE SD=“信息系” (2)SELECT SN,GR FROM S,SC
WHERE SD=“英语系”AND CN=“计算机”AND S.SNO=SC.SNO ORDER BY GR DESC:
数据库系统原理综合试题



