数据库概论参考答案_NO1.doc_第1页
数据库概论参考答案_NO1.doc_第2页
数据库概论参考答案_NO1.doc_第3页
数据库概论参考答案_NO1.doc_第4页
数据库概论参考答案_NO1.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.4 教材习题答案3.1 试述SQL语言的特点。答:SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体,主要特点包括:1、综合统一。SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。2、高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。3、面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。4、以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互操作使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言的程序中,供程序员设计程序时使用。5、语言简捷,易学易用。SOL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词。SQL语言接近英语句子,因此容易学习,容易使用。6、支持三级模式结构。SQL语言支持关系数据库的三级模式结构。其中外模式对应于视图(View),模式对应于基本表,内模式对应于存储文件。3.2 试述SQL的定义功能。答:SQL的数据定义功能包括定义表、定义视图和定义索引。SQL语言使用CREATE TABLE语句建立基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;使用CREATE INDEX语句建立索引,DROP INDEX语句删除索引;使用CREATE VIEW语句建立视图,DROP VIEW语句删除视图。3.3 用SQL语句建立习题2.4中的4个表。答:对于供应商表:S(Sno(供应商代码),Sname (供应商名),Status(供应状态),City(供应商所在城市)建S表CREATE TABLE S (Sno CHAR(4),Sname CHAR(10),Status CHAR(4),City CHAR(20));对于零件表:P(Pno(零件代码),Pname(零件名),Color(颜色),Weight(重量)建P表CREATE TABLE P (Pno CHAR(4),Pname CHAR(20),Color CHAR(4),Weight INT);对于工程项目表:J(Jno(工程项目代码),Jname(工程项目名),City(工程项目所在的城市)建J表CREATE TABLE J (Jno CHAR(4),Jname CHAR(20),City CHAR(20));对于零件供应情况表:SPJ(Sno(供应商代码),Pno(零件代码),Jno(工程项目代码),QTY(供应数量)。建SPJ表CREATE TABLE SPJ (Sno CHAR(4), Pno CHAR(4),Jno CHAR(4),QTY INT);3.4 针对习题3.3中建立的3个表,试用SQL语言完成习题2.4中的查询。 找出供应工程J1零件的供应商号;答:SELECT SnoFROM SPJWHERE Jno=J1; 找出供应工程J1零件P1的供应商号;答:SELECT SnoFROM SPJWHERE Jno=J1 AND Pno=P1; 找出供应工程J1红色零件的供应商号;答:SELECT SnoFROM SPJWHERE Jno=J1 AND Pno IN(SELECT PnoFROM PWHERE Color=绿);或SELECT SnoFROM SPJ ,PWHERE Jno=J1 AND SPJ.Pno=P.Pno AND P.Color=绿); 找出没有使用杭州供应商生产的绿色零件的工程号。答:SELECT JnoFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.Jno=J.Jno AND Sno IN(SELECT SnoFROM SWHERE City=杭州)AND Pno IN(SELECT PnoFROM PWHERE Color=绿);或SELECT JnoFROM JWHERE NOT EXISTS(SELECT *FROM SPJ,S,PWHERE SPJ.Jno=J.Jno AND SPJ.Sno=S.Sno AND SPJ.Pno=P.Pno AND S. City=杭州 AND P.Color=绿); 找出至少用了S2供应商所供应的全部零件的工程号。 答:SELECT DISTINCT JnoFROM SPJ SPJZWHERE NOT EXISTS(SELECT *FROM SPJ SPJXWHERE Sno=S2AND NOT EXISTS (SELECT *FROM SPJ SPJYWHERE SPJY.Pno=SPJX.Pno AND SPJY.Jno=SPJZ.Jno); 找出供应红色的P1零件且其供应量大于200的供应商号。答:SELECT JnoFROM P,SPJWHERE P.Pno=SPJ.Pno AND P.Pno=P1 AND SPJ.QTY=200;3.5 针对习题3.3中的4个表,试用SQL语言完成以下各项操作。(1) 找出所有供应商的姓名和所在城市。答:SELECT Sname,CityFROM S;(2) 找出所有零件的名称、颜色、重量。答:SELECT Pname,Color,WeightFROM P;(3) 找出使用供应商S2所供应零件的工程号。答:SELECT JnoFROM SPJWHERE Sno=S2;(4) 找出工程项目J3使用的各种零件的名称及其数量。答:SELECT P,Pname,SPJ.QTYFROM P,SPJWHERE P.Pno=SPJ.Pno AND SPJ.Jno=J3;(5) 找出杭州厂商供应的所有零件号码。答:SELECT DISTINCT PnoFROM SPJWHERE Sno IN ( SELECT Sno FROM S WHERE City=杭州);(6) 找出使用杭州产的零件的工程名称。答:SELECT JnameFROM J,SPJ,SWHERE J.Jno=SPJ.Jno AND SPJ.Sno=S.Sno AND S.City= 杭州;或SELECT JnameFROM JWHERE Jno IN (SELECT Jno FROM SPJ,S WHERE SPJ.Sno=S.Sno AND S.City= 杭州);(7) 找出没有供应天津产的零件的工程号。答:SELECT JnoFROM JWHERE NOT EXISTS ( SELECT * FROM SPJ WHERE SPJ.Jno=J.Jno AND Sno IN ( SELECT Sno FROM S WHERE City= 天津);或SELECT JnoFROM JWHERE NOT EXISTS ( SELECT * FROM SPJ,S WHERE SPJ.Jno=J.Jno AND SPJ.Sno=S.SnoAND City= 天津);(8) 把全部红色零件的颜色改成蓝色。答:UODATE PSET Color= 蓝WHERE Color= 红;(9) 由供应商S4供给J3零件P5改为由S3供应,请做必要的修改。答:UPDATE SPJSET Sno=S3WHERE Sno=S4 AND Jno=J3 AND Pno=P5;(10)从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录。答:DELETEFROM SPJWHERE Sno=S3;DELETEFROM SWHERE Sno=S2;(11)请将(S2,J6,P4,300)插入到供应情况关系中。答:INSERT INTO SPJ(Sno,Jno,Pno,QTY)VALUE (S2,J6,P4,300);或INSERT INTO SPJVALUE (S2,J6,P4,300);3.6 什么是基本表? 什么是视图? 两者的区别和联系是什么?答:基本表是数据库中本身独立存在的表,每个基本表对应一个关系模式。在SQL中一个关系就对应一个基本表。一个(或多个)基本表对应一个存储文件,一个基本表可以建立若干索引,它们都依附于基本表且存放在存储文件中。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义及其关联的基本表名等信息而不存放视图对应的数据,这些数据仍然存放在导出视图的基本表中。但SQL在查询视图时与基本表完全相同,且用户可以在视图上再定义视图。但用视图对数据库中的数据进行增、删、改等更新操作时有一定的限制。3.7 试述视图的优点。答: 视图能够简化用户的操作。视图使用户可以将注意力集中在所关心的数据上并简化用户的数据查询操作。 视图使用户能够以多角度看待同一数据。视图可使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性显得非常重要的。 视图为数据库重构提供了一定程度的逻辑独立性。数据的逻辑独立性是指当数据库重新构造时,如增加新的关系或对原有关系增加新的字段等,用户和用户程序不会受影响,而视图就为数据库重构提供了一定程度的逻辑独立性。 视图能够对数据提供安全保护。对不同的用户定义不同的视图,可使机密数据不出现在不应该看到这些数据的用户视图上,达到对机密数据的安全保护。3.8 所有的视图是否都可以更新? 为什么?答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新,因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。3.9 哪类视图是可以更新的,哪类视图是不可更新的? 各举一例。答:基本表的行列子集视图一般是可以更新的。如数据库原理与应用3.5.3中的例3.65。例、 将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。UPDATE C_StudentSET Sname=黄海WHERE Sno=S05;DBMS自动转换为对基本表的更新语句如下:UPDATE StudentsSET Sname=黄海WHERE Sno=S05 AND Sdept=数学;若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。如数据库原理与应用3.5.3中的例3.66。例、向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。INSERTINTO C_StudentVALUES (S09,王海,20,数学);由于在定义C_Student是应用了“WITH CHECK OPTION”短语,其作用是限制Sdept的值必须是“数学”才允许由视图C_Student插入,若换成其它任何字符,DBMS都拒绝执行插入操作。若定义C_Student是不用“WITH CHECK OPTION”这个短语,则以上VALUES 短语中改为(S09,王海,20,自动化)仍然可以完成插入操作,但用SELECT * FROM C_Student命令则看不到刚插入的元组。3.10 试述某个你熟悉的实际系统中对视图更新的规定。答:(略)因为不同的系统对视图的更新规定是不同的,学员必须了解你所用系统对视图更新的规定,所以我们无法给出一个相对标准的答案。3.11 请为一建工程项目建立一个供应情况的视图,包括供应商代码(Sno)、零件代码(Pno)、供应商名称(Sname)、供应数量(Qty)。针对该视图完成下列查询:(1) 找出一建工程项目使用的各种零件代码及其数量。(2) 找出供应商S2的供应情况。答:建视图CREATE VIEW V_SPJ ASSELECT Sno,Pno,Sname,QtyFROM SPJWHERE Jno= (SELECT Jno FROM J WHERE Jname= 一建); 对该视图进行查询:(1) 找出一建工程项目使用的各种零件代码及其数量。答:SELECT Pno,QtyFROM V_SPJ ;(2) 找出供应商S2的供应情况。答:SELECT Pno,QtyFROM V_SPJ ;WHERE Sno=S2;(3) 找出供应零件P2且供应数量大于100的供应商名。答:SELECT PnameFROM V_SPJ ;WHERE Pno=P2 AND Qty100;3.12 针对习题3.3建立的表,用SQL语言完成以下各项操作:(1) 把对表S的INSERT权限授予用户ZhangYong,并允许他再将此权限授予其他用户。答:GRANT INSERTON TABLE STO ZhangYongWITH GRANT OPTION;(2) 把查询SP表和修改Qty属性的权限授给用户LiMing。答:GRANT SELECT , UPDATE(QTY)ON TABLE SPJTO LiMing;3.13 嵌入式SQL是如何解决数据库工作单元与源程序工作单元之间通讯的?答:在SQL语句前加上前缀EXEC SQL,SQL语句的结束标志则随主语句的不同而不同。3.14 在嵌入式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论