数据库管理应用与开发课后答案_第1页
数据库管理应用与开发课后答案_第2页
数据库管理应用与开发课后答案_第3页
数据库管理应用与开发课后答案_第4页
数据库管理应用与开发课后答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

第二章

1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。

2.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在旦避缓建区中,随后由LGWR进程保存到日志文件。

3.一个表空间物理上对应一个或多个数据文件。

4.在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段,

5.在Oracle的逻辑存储结构中,数据块是最小的I/O单元。

6.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如

SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。

第三章

I.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。

2.在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的所有行时,可以使用关键字ALL。

3.如果需要在SELECT子句中包括一个表的所有列,可使用符号士。

4.如果定义与组有关的搜索条件,可以把grmiDbv户句添加到SELECT语句中。

5.当进行模糊杳询时,就使用关键字LIKE和通配符”“或百分号"%”。

6.WHERE子句可以接收FROM子句输出的数据,而HAVING子句贝I」可以接收来自groupbv.FROM或where子句的输入。

7.使下列SQL语句中添加适当的表达式或子句,使语句可以正常运行。

SELECT供应商所在城市,COUNT(供应商编号)

FROM供应商信息

GROUPBY供应商所在城市

ORDERBY_2_DESC;

第四章

1.在SQL语句中,用于向表中插入数据的语句是Insert,

2.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用select语句。

3.创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是updateartistssettid=15;。

4.使用describe命令可以显示表的结构信息。

5.使用SQL*Plus的幽命令可以将文件检索到缓冲区,并且不执行。

6.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clearcolumn,而当要清除某列具体的显示属性时,需要使用命令

OFF/column歹U名clear.、

7.使用SAVE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。

8.要设置SQL*Pkis显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的显示格式要使用Column命令。

第五章

1.在Oracle系统中,为了实现对表、视图和索引等数据库对象进行管理,Oracle采用模式实现。

2.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式中。

3Char数据类型与Varchar2类型都用于存储字符串。如果定义了Char类型的字段,并且向其赋值时,字符串的长度小于定义的长度,则使用空

格填充;而近型里旦-类型的字段用于存储变长的字符串,即如果向该列赋值的字符长度小于定义时的长度,该列的字符长度只会是实际字符数据

的长度,系统不会使用空格填充。

4.R0WID实际上保存的是记录的物理地址,因此通过ROWID来访问记录右以获得最快的访问速度。

5.在STORAGE子句中可以设置6个存储参数。其中,Ini迤L指定为表中的数据分配的第•个盘区的大小;曲生指定为存储表中的数据分配的第二

个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;西西邈西指定允许为表中的数据所分配的最小盘区

数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。

6.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中Pctfree用丁•控制数据块的更新预留的空间,而Pctused用「控制数据块在

删除时释放空间的门槛。

,为Sludenl表手动分配存储空间,并且大小由NEXT参数设置,则应使用的语句为AltertableStudentallocateextent;:如果为Student表手动分

配了一个大小为128KB的新盘区,则应使用的语句为AltertableStudentallocateextent(size128k);0

8.填写下面语句,使其可以将Class表移动到表空间SYSTEM中的数据段,并且其初始化盘区为30KB,第二个盘区为20KB,随后分配的盘区不会

增长。Initial30k

Nex120k

ALTERTABLEClassmove

Pctincrease0

TABLESPACESYSTEM

MAXEXTENTSUNLIMITED);

STORAGE(

9.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于

列的定义,它可以应用于一个表中的多个列。

10.填写下面的语句,使其可以为Class表的ID列添加一个名为PK.CLASSJD的主键约束。

ALTERTABLEClass

AddconstraintPK_CLASS_IDPRIMARYKEY(ID)

11.假设已经创建了CHAINED_ROWS表,填写下面的语句,以便对“业务员信息”表进行链接记录分析:

ANALYZETABLE业务员信息

Listchainedrowsintochainedrows

第六章

1.在使用逗号连接的多表查询中,为了防止出现笛卡儿积,需要SELECT语句的叱蛇里『•句中提供连接条件。

2.使用逗号连接的多表查询中,用户可以根据下述基本原则创建需要的各种查询:Er些L子句应当包括所有的表名,在皿里子句中应定义一个连

接条件,当列名为多个表共有时,列名必须被限制。

3.直登连接为具有相同名称的列自动进行记录匹配,它不必指定任何同等连接条件。

4.集合运算符UNION实现了集合的并运算,操作INTERSECT实现了对集合的交运算,而MINUS则实现。减运算。

5.使用关键字连接子查询时,EXISTS关键只注重子杳询是否返问行,如果子查询返回一个或多个行,那么便返PI为真,否则为假。

第七章

1.PL/SQL程序块主要包含3个主要部分:声明部分、可执行部分和异常处理部分。

2.使用显式游标主要有4个步骤:声明游标、打开游标、检索数据、关闭游标°

3.在PL/SQL中,如果SELECT语句没有返回列,则会引发ORACLE错误,并引发no_data_found异常。

4.自定义异常必须使用raise语句引发。

5.查看操作在数据表中所影响的行数,可通过游标的%RowC<nint属性实现。

6.查看下面的程序块,DBMS_OUTPUT将显示什么结果?N

DECLAREBEGIN

var_aCHAR(1):=N;var_a:='Y';

BEGINEND;

DECLAREDBMS_OUTPUT.put_line(var_a);

var_aCHAR(2);END;

7.查看下面的程序块,其中变下varb的结果为5。

DECLAREELSIFvar_a>1000THEN

Var_anumber:=1200;var_b:=10;

Var_bnumber;ELSE

BEGINvar_b:=8;

IFvar_a>500THENENDIF;

var_b:=5;END;

8.下列程序计算由()~9之间的任意3个不相同的数字组成的三位数,共有多少种不同的组合方式?完成下列程序使其能够正确运行。

DECLAREcounter:=counter+1;

counternumber:=0;ENDIF;

ENDLOOP;

ENDIF;

BEGIN

FORiIN1..9LOOP

FORjIN0..9LOOP

IFi!=jTHEN

FORkIN0..9LOOP

IFk!=iandk!=i

第八章

1.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。

CREATEORREPLACEFUNCTIONget_price

FROM商品信息WHERE商品编号=P」D;

(P_IDvarchar2)

RETURNv_price;

returnnumberis

EXCEPTION

IS

WHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(,查找

v_priceNUMBER;的商品不存在!,);

BEGIN

WHENTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE(,程

SELECT单价

序运行错误!请使用游标');

intov_price

WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE('发生其彳也错误!

ENDget_price;

2.假设有一个程序包,其中包含了两个重载的函数max。写出下面程序调用max函数后的运行结果。

程序包主体:Result:=x;

CreateorreplacepackagebodyElse

TESTisResult:=y;

Functionmax(xinnuniber.yinnumber)returnnumberisEndif;

Resultnumber;Return(result),

BeginEndmax;

Ifx>ythenFunctionmax(xinnumber,yinnumbenzinnumber)returnnumberisresult

BeginReturn(result);

Result:=test.max(x,y);Endmax;

Result:=test.max(result,z);End;

运行结果:21

3.在下面程序的空白处填写适当的代码,使得调用该过程时可以统计某产地的商品数量和总价。

CREATEORREPLACEPROCEDUREproc_demo(FROM商品信息WHERE产地二Merchplace:

Merch_placeINvarchar2,EXCEPTION

Price_sumoutNUMBER,WHENNO_DATA_FOUNDTHEN

Merch_countoutNUMBER)DBMS_OUTPUT.PUT_LINEC所需数据不存在!,);

ISWHENOTHERSTHEN

BEGINDBMS_OUTPUT.PUT_LINEC发生其他错误!,);

SELECTSUM(单价),COUNT(*)INTOPrice_sum,Merch_countENDproc_demo;

第九章

1.为了建立外部表,首先需要指示数据文件在操作系统上的位置。现在假设在操作系统的F:\DATAFILE文件夹中存有一个数据文件,使用create

directoryexterior_dataas,F:\DATAFILE,;语句使Oracle可以访问数据文件。

2.在使用CREATETABLE语句创建索引组织表时,必须使用。n;anizati()nindex子句指示创建的表为索引组织表,并且为索引组织表指定主铤。

3.PCTTHRESHOLD指定一个数据块的百分比,当一行中的数据占用空间大于这个百分比时,该行将被分隔到两个位置存储:主铤列被存储在基本

索引段中,所有其他列被存储在溢出段中。

4.0racle中的临时表可以分为事务级临时表和会话级临时表,创建事务级别的临时表,需要使用oncommitdeleterows子句;创建一个会话级别的

临时表,则需要使用oncommitpreserverrowsF句。

5.在创建对象类型时,用户不必特意创建构造函数,它由系统隐式创建,名称与对象类型的名称相同,并且它会接收对象类型的所有属性作为它的

参数。

6.如果用户想要对对象类型的实例进行比较排序,则需要使用映射方法Map,它最重要的一个特点是:当在WHERE或ORDERBY等比较关系子

句中使用对象时会被间接地使用。

7.有两种方法向对象表添加数据:一种是像关系表一样在INSERT的VALUES子句中,为对象的每个属性提供值,隐式地创建对象类型实例,向对

象表添加数据;另一种方式是显式地创建对象实例,然后再将它添加到对象表。

8.0racle数据库提供对表或索引的分区方法有5种:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。

9.簇是一种用于存储数据表中数据的方法。簇实际是一组表,由•组共享相同数据块的多个表组成。

第十章

1.B树索引可以是唯一的或者不唯一的,唯一的B树索引可以保证索引列上不会有重复的值。

2.在为表中某个列定义PRIMARTKEY约束PK_ID后,则系统默认创建的索引名为PK」D.

3.在B树索引中,通过在索引中保存排过序的索引列的值与相对应的RiwlIL来实现快速查找.

4.如果表中某列的基数比较低,则应该在该列上创建位图索引。

5.如果要获知索引的使用情况,可以通过查询V$OBJECTUSAGE视图;而要获知索引的当前状态,可以查询IndexStats视图。

第十一章

1.在不为视图指定列名的情况下,视图列的名称将使用表列的名称。

2.视图与数据库中的表非常相似,用户也可以在视图进行INSERT、UPDATE,和DELETE操作。通过视图修改数据时,实际上是在修改基本表中

的数据;相应地,改变基本表中的数据也会反映到该表产生的视图中。

3.视图是否可以更新,这取决于定义视图的SELECT语句,通常情况下,该语句越复杂,创建的视图可以更新的可能性也就越小.

4.下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2.在空白处填写适当的代码,完成

上述要求。

Incremeniby2

Createsequenceseg_test

Maxvalue

Startwith2

第十二章

1.假设有一个表TEST,它仅包含一个字段DATA。现在创建一个触发器,实现将添加的数据变大写。在下面的空白处填写适当的语句,使之可以正

常运行。Begin

Createorreplacetriggertest_trigger:new.data:=uppcr(:new.data):

AfterinsertonTESTforeachrowEnd:

必退和MI里指定了触发器的触发时间。当为•个表配置了约束时,它们将会特别有用,蚪QK支可以规定Oracle在应用约束前调用触

发器,而AEJ旦旦规定在应用约束后调用触发器。

3.假设有一个名为ACTION_TYPE的表,它记录了对STUDENT表的操作。在空白处填写适当的代码,完成上述功能。

Createorreplacetriggerbiud_student_triggerifinsertingthenaction:-INSERT,;

Beforeinsertorupdateordeleteonstudentelsifupdatin口thenaction:-UPDATE";

Declareelsifdeletingthenaction:='DELETE,;

Actionaction_type.type%type;endif;

Begininsertintoaction_typevalue(usenaclion);

第十三章End;

1.事务的ACID特性包括原壬性、一致性,隔离控和永久性。

2.在设置事务隔离层时,需要使用关键字set

温馨提示

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

评论

0/150

提交评论