第3章SQL语言习题参考答案新.doc

上传人:h**** 文档编号:890717 上传时间:2018-11-04 格式:DOC 页数:7 大小:36.51KB
下载 相关 举报
第3章SQL语言习题参考答案新.doc_第1页
第1页 / 共7页
第3章SQL语言习题参考答案新.doc_第2页
第2页 / 共7页
第3章SQL语言习题参考答案新.doc_第3页
第3页 / 共7页
第3章SQL语言习题参考答案新.doc_第4页
第4页 / 共7页
第3章SQL语言习题参考答案新.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、第 3 章 SQL 语言习题参考答案1 试述 SQL 语言的特点。 (85 页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。2 试述 SQL 的定义功能。 (87 页)答:SQL 的数据定义功能包括定义表、定义视图和定义索引3 用 SQL 语句建立第二章习题 5 中的四个表。S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATU

2、S)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4)零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT I(2)工程项目表 J 由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)供应情

3、况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2)4针对上题中建立的四个表试用 SQL 语言完成第二章习题 5 中的查询:(1)求供应工程 J1 零件的供应商号码 SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1(2)求供应工程 J1 零件 P1 的供应商号码 SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1(3)求供应工程 J1 零件为红色的供

4、应商号码 SNO:SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红(4)求没有使用天津供应商生产的红色零件的工程号 JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY=天津 AND COLOR=红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 (5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO。由于 VFP 不允许子查询嵌套太深,将查询分为两步A、查询 S1 供应

5、商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程既使用 P1 零件又使用 P2 零件。SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2)5针对习题 3 中的四个表试用 SQL 语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商 S1 所

6、供应零件的工程号码。SELECT DIST JNO FROM SPJ WHERE SNO=S1(4)找出工程项目 J2 使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2(5)找出上海厂商供应的所有零件号码。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海(6)出使用上海产的零件的工程名称。SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.

7、JNO(7)找出没有使用天津产的零件的工程号码。注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) 适用于 JNO 是唯一或不唯一的情况.注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY天津适用于 JNO 是唯一的情况(8)把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR=红(9)由 S5 供给 J4 的零件 P

8、6 改为由 S3 供应。UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6(10)从供应商关系中删除供应商号是 S2 的记录,并从供应情况关系中删除相应的记录。A、DELETE FROM S WHERE SNO=S2B、DELETE FROM SPJ WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES(S2 , J6, P4,200)6什么是基本表?什么是视图?两者的区别和联系是什么?(87 页)基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。

9、一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。7试述视图的优点。 (128 页)答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定程度的逻辑独立性、视图能够对机密数据提供安全保护。8所有的视图是否都可以更新?为什么?(127 页)答:并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地

10、转换成对相应基本表的更新。9哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。(127 页)行列子集视图是可更新的。除行列子集视图外,还有些视图理论上是可更新的,但它们的确切特征还是尚待研究的课题。还有些视图从理论上不可更新的。10试述某个你热悉的实际系统中对视图更新的规定。 (VFP)11请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=三 建针对该视图 VSP 完成

11、下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。SELECT DIST PNO,QTY FROM VSP(2)找出供应商 S1 的供应情况。SELECT DIST * FROM VSP WHERE SNO=S112针对习题 3 建立的表,用 SQL 语言完成以下各项操作:(1) 把对表 S 的 INSERT 权限授予用户张勇,并允许他再将此权限授予其他用户。GRANT INSERT ON TABLE S TO 张勇 WITH GRANT OPTION(2) 把查询 SPJ 表和修改 QTY 属性的权限授给用户李天明。GRANT SELECT,UPDATE(QTY) ON TABLE

12、 SPJ TO 李天明* 以 下 选 作 *13在嵌入式 SQL 中是如何区分 SQL 语句和主语言语句的? (133 页)在嵌入式 SQL 中,为了能够区分 SQL 语句与主语言语句,所有 SQL语句都必须加前缀 EXEC SQL。(VFP 例外)14在嵌入式 SQL 中是如何解决数据库工作单元与源程序工作单元之间通讯的?(134 页)(1)向主语言传递 SQL 语句的执行状态信息,使主语言能够据此信息控制程序流程,主要用 SQL 通信区(SQL Communication Area,简称 SQLCA)实现。(2)主语言向 SQL 语句提供参数,主要用主变量(Host Variable)实现

13、。(3)将 SQL 语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。15在嵌入式 SQL 中是如何协调 SQL 语言的集合处理方式和主语言的单记录处理方式的? (135 页)答:游标是用于协调 SQL 语言的集合处理方式和主语言的单记录处理方式。 SQL 语言与主语言具有不同的数据处理方式。SQL 语言是面向集合的,一条 SQL 语句原则上可以产生或处理多条记录。主语言是面向记录的,一组主变量一次只能存放一条记录。所以仅使用主变量并不能完全满足 SQL 语句向应用程序输出数据的要求,为此嵌入式 SQL 引入了游标的概念,用游标来协调这两种不同的处理方式。= 完 =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。