




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle 10g 数据库管理应用与开发 课后习题答案(填空与选择题)填空题第二章1.Oracle 数据库系统的物理存储结构主要由 3 类文件组成,分别为数据文件、日志文件、控制文件。2.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后由 LGWR 进程保存到日志文件。3.一个表空间物理上对应一个或多个数据文件。4.在 Oracle 的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB 段和临时段。5.在 Oracle 的逻辑存储结构中,数据块是最小的 I/O 单元。6.在多进程 Oracle 实例系统中,进程分为用户进程、后台进程和服务器进程。当一个用户运行应用程序,如PRO*C 程序或一个 Oracle 工具(如 SQL*Plus) ,系统将为用户运行的应用程序建立一个用户进程。第三章1.标准的 SQL 语言语句类型可以分为:数据定义语句(DDL) 、数据操纵语句(DML)和数据控制语句(DCL ) 。2.在需要滤除查询结果中重复的行时,必须使用关键字 Distinct;在需要返回查询结果中的所有行时,可以使用关键字 ALL。3.如果需要在 SELECT 子句中包括一个表的所有列,可使用符号*。4.如果定义与组有关的搜索条件,可以把 group by 子句添加到 SELECT 语句中。5.当进行模糊查询时,就使用关键字 LIKE 和通配符“_“ 或百分号“%“。6.WHERE 子句可以接收 FROM 子句输出的数据,而 HAVING 子句则可以接收来自 group by、FROM 或 where子句的输入。7.使下列 SQL 语句中添加适当的表达式或子句,使语句可以正常运行。SELECT 供应商所在城市,COUNT(供应商编号)FROM 供应商信息GROUP BY 供应商所在城市ORDER BY 2 DESC;第四章1.在 SQL 语句中,用于向表中插入数据的语句是 Insert。2.如果需要向表中插入一批已经存在的数据,可以在 INSERT 语句中使用 select 语句。3.创建一个 UPDATE 语句来修改 ARTISTS 表中的数据,并且把每一行的 T_ID 值都改成 15,应该使用的 SQL语句是 update artists set t_id=15;。4.使用 describe 命令可以显示表的结构信息。5.使用 SQL*Plus 的 get 命令可以将文件检索到缓冲区,并且不执行。6.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令 clear column,而当要清除某列具体的显示属性时,需要使用命令 OFF/column 列名 clear。7.使用 SAVE 命令可以将缓冲区中的 SQL 命令保存到一个文件中,并且可以使用 Start 命令运行该文件。8.要设置 SQL*Plus 显示数字时的格式可以使用 NumFormat 命令,而要设置某个数字列的显示格式要使用Column 命令。第五章1.在 Oracle 系统中,为了实现对表、视图和索引等数据库对象进行管理,Oracle 采用模式实现。2.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式中。3.Char 数据类型与 Varchar2 类型都用于存储字符串。如果定义了 Char 类型的字段,并且向其赋值时,字符串的长度小于定义的长度,则使用空格填充;而 Varchar2 类型的字段用于存储变长的字符串,即如果向该列赋值的字符长度小于定义时的长度,该列的字符长度只会是实际字符数据的长度,系统不会使用空格填充。4.ROWID 实际上保存的是记录的物理地址,因此通过 ROWID 来访问记录右以获得最快的访问速度。5.在 STORAGE 子句中可以设置 6 个存储参数。其中,Initial 指定为表中的数据分配的第一个盘区的大小;Next 指定为存储表中的数据分配的第二个盘区大小;Pctincrease 指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents 指定允许为表中的数据所分配的最小盘区数目; Maxextents 指定允许为表中的数据所分配的最大盘区数目。6.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中 Pctfree 用于控制数据块的更新预留的空间,而 Pctused 用于控制数据块在删除时释放空间的门槛。7.为 Student 表手动分配存储空间,并且大小由 NEXT 参数设置,则应使用的语句为 Alter table Student allocate extent; ;如果为 Student 表手动分配了一个大小为 128KB 的新盘区,则应使用的语句为 Alter table Student allocate extent(size 128k); 。8.填写下面语句,使其可以将 Class 表移动到表空间 SYSTEM 中的数据段,并且其初始化盘区为 30KB,第二个盘区为 20KB,随后分配的盘区不会增长。ALTER TABLE Class moveTABLESPACE SYSTEMSTORAGE (Initial 30kNext 20kPctincrease 0MAXEXTENTS UNLIMITED);9.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。10.填写下面的语句,使其可以为 Class 表的 ID 列添加一个名为 PK_CLASS_ID 的主键约束。ALTER TABLE ClassAdd constraint PK_CLASS_ID PRIMARY KEY(ID)11.假设已经创建了 CHAINED_ROWS 表,填写下面的语句,以便对“业务员信息”表进行链接记录分析:ANALYZE TABLE 业务员信息List chained rows into chained_rows第六章1.在使用逗号连接的多表查询中,为了防止出现笛卡儿积,需要 SELECT 语句的 Where 子句中提供连接条件。2.使用逗号连接的多表查询中,用户可以根据下述基本原则创建需要的各种查询:From 子句应当包括所有的表名,在 Where 子句中应定义一个连接条件,当列名为多个表共有时,列名必须被限制。3.自然连接为具有相同名称的列自动进行记录匹配,它不必指定任何同等连接条件。4.集合运算符 UNION 实现了集合的并运算,操作 INTERSECT 实现了对集合的交运算,而 MINUS 则实现了减运算。5.使用关键字连接子查询时,EXISTS 关键只注重子查询是否返回行,如果子查询返回一个或多个行,那么便返回为真,否则为假。第七章1.PL/SQL 程序块主要包含 3 个主要部分:声明部分、可执行部分和 异常处理部分。2.使用显式游标主要有 4 个步骤:声明游标、打开游标、检索数据、关闭游标。3.在 PL/SQL 中,如果 SELECT 语句没有返回列,则会引发 ORACLE 错误,并引发 no_data_found 异常。4.自定义异常必须使用 raise 语句引发。5.查看操作在数据表中所影响的行数,可通过游标的%RowCount 属性实现。6.查看下面的程序块,DBMS_OUTPUT 将显示什么结果? N DECLAREvar_a CHAR(1):=N;BEGINDECLAREvar_a CHAR(2);BEGINvar_a:=Y;END;DBMS_OUTPUT.put_line(var_a);END;7.查看下面的程序块,其中变量 var_b 的结果为 5 。DECLAREVar_a number:=1200;Var_b number;BEGINIF var_a500 THENvar_b:=5;ELSIF var_a1000 THENvar_b:=10;ELSEvar_b:=8;END IF;END;8.下列程序计算由 09 之间的任意 3 个不相同的数字组成的三位数,共有多少种不同的组合方式?完成下列程序使其能够正确运行。DECLAREcounter number:=0;BEGINFOR i IN 1.9 LOOPFOR j IN 0.9 LOOPIF i!=j THENFOR k IN 0.9 LOOPIF k!=i and k!=jcounter:=counter+1;END IF;END LOOP;END IF;END LOOP;END LOOP;DBMS_OUTPUT.put_line(counter);END;第八章1.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。CREATE OR REPLACE FUNCTION get_price(P_ID varchar2)return number isISv_price NUMBER;BEGINSELECT 单价into v_priceFROM 商品信息 WHERE 商品编号=P_ID;RETURN v_price;EXCEPTIONWHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(查找的商品不存在!);WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE( 程序运行错误!请使用游标);WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(发生其他错误!);END get_price;2.假设有一个程序包,其中包含了两个重载的函数 max。写出下面程序调用 max 函数后的运行结果。程序包主体:Create or replace package bodyTEST isFunction max(x in number,y in number) return number isResult number;BeginIf xy thenResult:=x;ElseResult:=y;End if;Return (result)End max;Function max(x in number,y in number,z in number) return number is result number;BeginResult:=test.max(x,y);Result:=test.max(result,z);Return(result);End max;End;运行结果: 21 3.在下面程序的空白处填写适当的代码,使得调用该过程时可以统计某产地的商品数量和总价。CREATE OR REPLACE PROCEDURE proc_demo(Merch_place IN varchar2,Price_sum out NUMBER,Merch_count out NUMBER)ISBEGINSELECT SUM(单价),COUNT(*) INTO Price_sum,Merch_countFROM 商品信息 WHERE 产地=Merch_place ;EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE(所需数据不存在!);WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(发生其他错误!);END proc_demo;第九章1.为了建立外部表,首先需要指示数据文件在操作系统上的位置。现在假设在操作系统的 F:DATAFILE 文件夹中存有一个数据文件,使用 create directory exterior_data as F:DATAFILE;语句使 Oracle 可以访问数据文件。2.在使用 CREATE TABLE 语句创建索引组织表时,必须使用 organization index 子句指示创建的表为索引组织表,并且为索引组织表指定主键。3.PCTTHRESHOLD 指定一个数据块的百分比,当一行中的数据占用空间大于这个百分比时,该行将被分隔到两个位置存储:主键列被存储在基本索引段中,所有其他列被存储在溢出段中。4.Oracle 中的临时表可以分为事务级临时表和会话级临时表,创建事务级别的临时表,需要使用 on commit delete rows 子句;创建一个会话级别的临时表,则需要使用 on commit preserver rows 子句。5.在创建对象类型时,用户不必特意创建构造函数,它由系统隐式创建,名称与对象类型的名称相同,并且它会接收对象类型的所有属性作为它的参数。6.如果用户想要对对象类型的实例进行比较排序,则需要使用映射方法 Map,它最重要的一个特点是:当在WHERE 或 ORDER BY 等比较关系子句中使用对象时会被间接地使用。7.有两种方法向对象表添加数据:一种是像关系表一样在 INSERT 的 VALUES 子句中,为对象的每个属性提供值,隐式地创建对象类型实例,向对象表添加数据;另一种方式是显式地创建对象实例,然后再将它添加到对象表。8.Oracle 数据库提供对表或索引的分区方法有 5 种:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。9.簇是一种用于存储数据表中数据的方法。簇实际是一组表,由一组共享相同数据块的多个表组成。第十章1.B 树索引可以是唯一的或者 不唯一的,唯一的 B 树索引可以保证索引列上不会有重复的值。2.在为表中某个列定义 PRIMART KEY 约束 PK_ID 后,则系统默认创建的索引名为 PK_ID。3.在 B 树索引中,通过在索引中保存排过序的索引列的值与相对应的 RowID 来实现快速查找。4.如果表中某列的基数比较低,则应该在该列上创建位图索引。5.如果要获知索引的使用情况,可以通过查询 V$OBJECT_USAGE 视图;而要获知索引的当前状态,可以查询Index_Stats 视图。第十一章1.在不为视图指定列名的情况下,视图列的名称将使用表列的名称。2.视图与数据库中的表非常相似,用户也可以在视图进行 INSERT、UPDATE 、和 DELETE 操作。通过视图修改数据时,实际上是在修改基本表中的数据;相应地,改变基本表中的数据也会反映到该表产生的视图中。3.视图是否可以更新,这取决于定义视图的 SELECT 语句,通常情况下,该语句越复杂,创建的视图可以更新的可能性也就越小。4.下面的语句创建了一个序列对象,该序列对象的开始数为 2,每次递增 2,当大于 1000 后,序列值重新返回到 2.在空白处填写适当的代码,完成上述要求。Create sequence seg_testStart with 2Increment by 2Maxvalue 1000Cycle;第十二章1.假设有一个表 TEST,它仅包含一个字段 DATA。现在创建一个触发器,实现将添加的数据变大写。在下面的空白处填写适当的语句,使之可以正常运行。Create or replace trigger test_triggerAfter insert on TEST for each rowBegin:new.data:=upper(:new.data);End;2.BEFORE 和 AFTER 指定了触发器的触发时间。当为一个表配置了约束时,它们将会特别有用,BEFORE 可以规定 Oracle 在应用约束前调用触发器,而 AFTER 规定在应用约束后调用触发器。3.假设有一个名为 ACTION_TYPE 的表,它记录了对 STUDENT 表的操作。在空白处填写适当的代码,完成上述功能。Create or replace trigger biud_student_triggerBefore insert or update or delete on studentDeclareAction action_type.type%type;Beginif inserting then action:=INSERT;elsif updating then action:=UPDATE;elsif deleting then action:=DELETE;end if;insert into action_type value(user,action);End;第十三章1.事务的 ACID 特性包括原子性、一致性,隔离性和永久性。2.在设置事务隔离层时,需要使用关键字 set transaction。3.可以用 SET CONSTRAINT constraint_name DEFERRED 语句,启用某个约束的延期应用,而使用 SET CONSTRAINT ALL DEFERRED 语句可以设置本事务中所有约束的延期应用;语句 SET CONSTRAINT ALL IMMEDIATE 可以设置约束的应用。4.在众多的事务控制语句中,用来撤销事务的操作的语句为 ROLLBACK,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年海南澄迈教师招聘真题
- 河南省豫地科技集团招聘笔试真题2024
- 教学设计太原幼儿师范李慧芳26日改
- 职业教育产教融合实训基地建设项目可行性研究报告
- 2025至2030年中国电动木铣行业投资前景及策略咨询报告
- 2025至2030年中国玻璃钢四连体桌行业投资前景及策略咨询报告
- 持续创新驱动下的绿色工业人才培养与合作
- 2025至2030年中国涤棉漂白布行业投资前景及策略咨询报告
- 2025至2030年中国油田阻垢缓蚀剂行业投资前景及策略咨询报告
- 2025至2030年中国气动控制阀行业投资前景及策略咨询报告
- 云南省云南大学附属中学2025届七年级生物第二学期期末考试试题含解析
- 2025年入党积极分子试题
- 《人生的智慧》课件
- 深度学习基础与实践 课件 10.1 ResNet网络
- 基于针灸理论下阳朔旧县村景观更新设计研究
- 直播间设计装修合同协议
- 生产过程危险和有害因素之3:“环境因素”辨识应用示例清单(雷泽佳-2025A0)
- 2025年中考生物:环境保护|疾病预防|生物技术|食品安全 4个热点考点练习题汇编(含答案解析)
- 二造管理深度精讲讲义
- 医疗数字化转型中的法律合规策略
- 警务信息侦控题库
评论
0/150
提交评论