数据库概论参考答案NO1.docx

上传人:b****4 文档编号:5011640 上传时间:2022-12-12 格式:DOCX 页数:12 大小:24.42KB
下载 相关 举报
数据库概论参考答案NO1.docx_第1页
第1页 / 共12页
数据库概论参考答案NO1.docx_第2页
第2页 / 共12页
数据库概论参考答案NO1.docx_第3页
第3页 / 共12页
数据库概论参考答案NO1.docx_第4页
第4页 / 共12页
数据库概论参考答案NO1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据库概论参考答案NO1.docx

《数据库概论参考答案NO1.docx》由会员分享,可在线阅读,更多相关《数据库概论参考答案NO1.docx(12页珍藏版)》请在冰豆网上搜索。

数据库概论参考答案NO1.docx

数据库概论参考答案NO1

教材习题答案

试述SQL语言的特点。

答:

SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体,主要特点包括:

1、综合统一。

SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。

2、高度非过程化。

用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。

这不仅大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式。

SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

4、以同一种语法结构提供两种使用方式。

SQL语言既是自含式语言,又是嵌入式语言。

作为自含式语言,它能够独立地用于联机交互操作使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言的程序中,供程序员设计程序时使用。

5、语言简捷,易学易用。

SOL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词。

SQL语言接近英语句子,因此容易学习,容易使用。

6、支持三级模式结构。

SQL语言支持关系数据库的三级模式结构。

其中外模式对应于视图(View),模式对应于基本表,内模式对应于存储文件。

^

试述SQL的定义功能。

答:

SQL的数据定义功能包括定义表、定义视图和定义索引。

SQL语言使用CREATETABLE语句建立基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引;使用CREATEVIEW语句建立视图,DROPVIEW语句删除视图。

用SQL语句建立习题中的4个表。

答:

对于供应商表:

S(Sno(供应商代码),Sname(供应商名),Status(供应状态),City(供应商所在城市))

建S表

CREATETABLES

(SnoCHAR(4),SnameCHAR(10),StatusCHAR(4),CityCHAR(20));

对于零件表:

P(Pno(零件代码),Pname(零件名),Color(颜色),Weight(重量))

建P表

CREATETABLEP

(PnoCHAR(4),PnameCHAR(20),ColorCHAR(4),WeightINT);

对于工程项目表:

J(Jno(工程项目代码),Jname(工程项目名),City(工程项目所在的城市))

建J表

-

CREATETABLEJ

(JnoCHAR(4),JnameCHAR(20),CityCHAR(20));

对于零件供应情况表:

SPJ(Sno(供应商代码),Pno(零件代码),Jno(工程项目代码),QTY(供应数量))。

建SPJ表

CREATETABLESPJ

(SnoCHAR(4),PnoCHAR(4),JnoCHAR(4),QTYINT);

针对习题中建立的3个表,试用SQL语言完成习题中的查询。

找出供应工程J1零件的供应商号;

答:

SELECTSno

FROMSPJ

WHEREJno=’J1’;

找出供应工程J1零件P1的供应商号;

答:

SELECTSno

FROMSPJ

WHEREJno=’J1’ANDPno=’P1’;

{

找出供应工程J1红色零件的供应商号;

答:

SELECTSno

FROMSPJ

WHEREJno=’J1’ANDPnoIN

(SELECTPno

FROMP

WHEREColor=’绿’);

SELECTSno

FROMSPJ,P

WHEREJno=’J1’AND=AND=’绿’);

找出没有使用杭州供应商生产的绿色零件的工程号。

答:

SELECTJno

FROMJ

WHERENOTEXISTS

(SELECT*

&

FROMSPJ

WHERE=ANDSnoIN

(SELECTSno

FROMS

WHERECity=’杭州’)

ANDPnoIN

(SELECTPno

FROMP

WHEREColor=’绿’));

SELECTJno

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ,S,P

WHERE=AND=

AND=ANDS.City=’杭州’

AND=’绿’);

找出至少用了S2供应商所供应的全部零件的工程号。

]

答:

SELECTDISTINCTJno

FROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJX

WHERESno=’S2’

ANDNOTEXISTS

(SELECT*

FROMSPJSPJY

~

WHERE=

AND=);

找出供应红色的P1零件且其供应量大于200的供应商号。

答:

SELECTJno

FROMP,SPJ

WHERE=AND=’P1’AND>=200;

针对习题中的4个表,试用SQL语言完成以下各项操作。

\

(1)找出所有供应商的姓名和所在城市。

答:

SELECTSname,City

FROMS;

(2)找出所有零件的名称、颜色、重量。

答:

SELECTPname,Color,Weight

FROMP;

~

(3)找出使用供应商S2所供应零件的工程号。

答:

SELECTJno

FROMSPJ

WHERESno=’S2’;

(4)找出工程项目J3使用的各种零件的名称及其数量。

答:

SELECTP,Pname,

FROMP,SPJ

-

WHERE=

AND=’J3’;

(5)找出杭州厂商供应的所有零件号码。

答:

SELECTDISTINCTPno

FROMSPJ

WHERESnoIN

(SELECTSno

FROMS

WHERECity=’杭州’);

(6)找出使用杭州产的零件的工程名称。

答:

SELECTJname

FROMJ,SPJ,S

WHERE=AND=

AND=’杭州’;

SELECTJname

-

FROMJ

WHEREJnoIN

(SELECTJno

FROMSPJ,S

WHERE=AND=’杭州’);

 

(7)找出没有供应天津产的零件的工程号。

答:

SELECTJno

|

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERE=

ANDSnoIN

(SELECTSno

FROMS

WHERECity=’天津’));

SELECTJno

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ,S

WHERE=

AND=

ANDCity=’天津’);

 

?

(8)把全部红色零件的颜色改成蓝色。

答:

UODATEP

SETColor=’蓝’

WHEREColor=’红’;

(9)由供应商S4供给J3零件P5改为由S3供应,请做必要的修改。

答:

UPDATESPJ

SETSno=’S3’

~

WHERESno=’S4’ANDJno=’J3’ANDPno=’P5’;

(10)从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录。

答:

DELETE

FROMSPJ

WHERESno=’S3’;

DELETE

FROMS

^

WHERESno=’S2’;

(11)请将(S2,J6,P4,300)插入到供应情况关系中。

答:

INSERTINTOSPJ(Sno,Jno,Pno,QTY)

VALUE(S2,J6,P4,300);

INSERTINTOSPJ

VALUE(S2,J6,P4,300);

:

什么是基本表什么是视图两者的区别和联系是什么

答:

基本表是数据库中本身独立存在的表,每个基本表对应一个关系模式。

在SQL中一个关系就对应一个基本表。

一个(或多个)基本表对应一个存储文件,一个基本表可以建立若干索引,它们都依附于基本表且存放在存储文件中。

视图是从一个或几个基本表导出的表。

视图本身不独立存储在数据库中,是一个虚表。

即数据库中只存放视图的定义及其关联的基本表名等信息而不存放视图对应的数据,这些数据仍然存放在导出视图的基本表中。

但SQL在查询视图时与基本表完全相同,且用户可以在视图上再定义视图。

但用视图对数据库中的数据进行增、删、改等更新操作时有一定的限制。

试述视图的优点。

答:

视图能够简化用户的操作。

视图使用户可以将注意力集中在所关心的数据上并简化用户的数据查询操作。

视图使用户能够以多角度看待同一数据。

视图可使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性显得非常重要的。

视图为数据库重构提供了一定程度的逻辑独立性。

数据的逻辑独立性是指当数据库重新构造时,如增加新的关系或对原有关系增加新的字段等,用户和用户程序不会受影响,而视图就为数据库重构提供了一定程度的逻辑独立性。

视图能够对数据提供安全保护。

对不同的用户定义不同的视图,可使机密数据不出现在不应该看到这些数据的用户视图上,达到对机密数据的安全保护。

/

所有的视图是否都可以更新为什么

答:

不是。

视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新,因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。

哪类视图是可以更新的,哪类视图是不可更新的各举一例。

答:

基本表的行列子集视图一般是可以更新的。

如《数据库原理与应用》3.5.3中的例。

例、将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。

UPDATEC_Student

~

SETSname='黄海'

WHERESno='S05';

DBMS自动转换为对基本表的更新语句如下:

UPDATEStudents

SETSname='黄海'

WHERESno='S05'ANDSdept='数学';

若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。

如《数据库原理与应用》3.5.3中的例。

例、向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。

INSERT

INTOC_Student

&

VALUES('S09','王海',20,’数学’);

由于在定义C_Student是应用了“WITHCHECKOPTION”短语,其作用是限制Sdept的值必须是“数学”才允许由视图C_Student插入,若换成其它任何字符,DBMS都拒绝执行插入操作。

若定义C_Student是不用“WITHCHECKOPTION”这个短语,则以上VALUES短语中改为('S09','王海',20,’自动化’)仍然可以完成插入操作,但用SELECT*FROMC_Student命令则看不到刚插入的元组。

试述某个你熟悉的实际系统中对视图更新的规定。

答:

(略)

因为不同的系统对视图的更新规定是不同的,学员必须了解你所用系统对视图更新的规定,所以我们无法给出一个相对标准的答案。

请为一建工程项目建立一个供应情况的视图,包括供应商代码(Sno)、零件代码(Pno)、供应商名称(Sname)、供应数量(Qty)。

针对该视图完成下列查询:

(1)找出一建工程项目使用的各种零件代码及其数量。

(2)找出供应商S2的供应情况。

答:

建视图

CREATEVIEWV_SPJAS

SELECTSno,Pno,Sname,Qty

FROMSPJ

WHEREJno=

(SELECTJno

FROMJ

WHEREJname=’一建’);

对该视图进行查询:

:

(1)找出一建工程项目使用的各种零件代码及其数量。

答:

SELECTPno,Qty

FROMV_SPJ;

(2)找出供应商S2的供应情况。

答:

SELECTPno,Qty

FROMV_SPJ;

WHERESno=’S2’;

|

(3)找出供应零件P2且供应数量大于100的供应商名。

答:

SELECTPname

FROMV_SPJ;

WHEREPno=’P2’ANDQty>100;

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

(1)把对表S的INSERT权限授予用户ZhangYong,并允许他再将此权限授予其他用户。

答:

GRANTINSERT

ONTABLES

TOZhangYong

WITHGRANTOPTION;

(2)把查询SP表和修改Qty属性的权限授给用户LiMing。

答:

GRANTSELECT,UPDATE(QTY)

ONTABLESPJ

TOLiMing;

嵌入式SQL是如何解决数据库工作单元与源程序工作单元之间通讯的

答:

在SQL语句前加上前缀EXECSQL,SQL语句的结束标志则随主语句的不同而不同。

在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的

答:

用游标来协调这两种不同的处理方式。

游标区是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。

用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

试述空值的概念,空值在运算中会带来什么问题

答:

SQL/DS支持空值的概念。

空值是“不存在”的值,即未知的或不可用的。

空值在运算中会带来结果的不确定性问题。

例、如果算术表达式中任一运算分量为空值,则表达式的值为空值。

如x+y中,若x为空值,则x+y的值为空。

在算术比较中,有一值为空值,表达式的值为“”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1