Oracle 10g 数据库管理 应用开发 标准教程 思考与练习 联系客服

发布时间 : 星期六 文章Oracle 10g 数据库管理 应用开发 标准教程 思考与练习更新完毕开始阅读e96a5579a26925c52cc5bfdf

(partition p1 values less than (2000) or values less than (date'1988-1-1') Tablespace users storage(initial 100k next 100k minextents 1 maxextents unlimited), Partition p2 values less than (maxvalue) or values less than (maxvalue) Tablespace system storage(initial 100k next 100k minextents 1 maxextents unlimited)); B.

Create table text_pt( ID NUMBER(20) not null, Tip varchar2(10), Re_date date)

Partition by range(ID,re_date)

(partition p1 values less than (2000,date'1988-1-1') Tablespace users storage(initial 100k next 100k minextents 1 maxextents unlimited), Partition p2 values less than (maxvalue,maxvalue)

Tablespace system storage(initial 100k next 100k minextents 1 maxextents unlimited)); C.

Create table text_pt( ID NUMBER(20) not null, Tip varchar2(10), Re_date date)

Partition by range(ID)

Subpartition by range(re_date)

(partition p1 values less than (2000) or values less than (date'1988-1-1') Tablespace users,

Partition p2 values less than (maxvalue) or values less than (maxvalue) Tablespace system ); D.

Create table text_pt( ID NUMBER(20) not null, Tip varchar2(10), Re_date date)

Partition by range(ID)

Subpartition by range(re_date)

(partition p1 values less than (2000,date'1988-1-1') Tablespace users,

Partition p2 values less than (maxvalue,maxvalue) Tablespace system );

5.假设要对“商品信息”表进行分区处理,并且根据商品的产地进行分区,则应采用下列哪 一种分区方法? C

A.范围分区 B.散列分区 C.列表分区 D.组合范围散列分区 6.下列哪一项是关于簇和簇表不正确的描述? D A.簇实际上是一组表

B.因为簇将不同表的相关行一起存储到相同的数据块中,所以合理使用簇可以帮助减少查

询数据所需的磁盘读取量

C.簇表是簇中某一个表 D.在创建簇和簇表之后就可以向其中添加数据

第十章 一、填空题

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

2.在为表中某个列定义PRIMART KEY 约束PK_ID 后,则系统默认创建的索引名为PK_ID。 3.在B 树索引中,通过在索引中保存排过序的索引列的值与相对应的RowID 来实现快速查 找。

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

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

二、选择题

1.查看下面的语句创建了哪一种索引? C

CREATE INDEX test_index ON student(stuno,sname) TABLESPACE users STORAGE(INITIAL 64k,next 32k);

A.全局分区索引 B.位图索引 C.复合索引 D.基于函数的索引 2.使用ALTER INDEX...REBUILD 语句不可以执行下面的哪个任务? D

A.将反向键索引重建为普通索引 B.将一个索引移动到另一个表空间 C.将位图索引更改为普通索引 D.将一个索引分区移动到另一个表空间 3.下列关于约束与索引的说法中,哪一项是不正确的? D A.在字段上定义PRIMART KEY 约束时会自动创建B 树唯一索引 B.在字段上定义UNIQUE 约束时会自动创建一个B 树唯一索引

C.默认情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的索引 D.定义FOREIGN KEY 约束时会创建一个B 树唯一索引

4.假设EMPLOYEE 表包含一个MARRIAGE 列,用于描述职工的婚姻状况,则应该在该字 段上创建什么类型的索引? D

A.B 树唯一索引 B.B 树不唯一索引 C.基于函数的索引 D.位图索引 5.下列关于索引的描述哪一项是不正确的? B

A.表是否具有索引不会影响到所使用的SQL 编写形式 B.在为表创建索引后,所有的查询操作都会使用索引 C.为表创建索引后,可以提高查询的执行速度

D.在为表创建索引后,Oracle 优化器将根据具体情况决定是否采用索引 6.如果经常执行类似于下面的查询语句:

SELECT * from student where Substr(sname,0,2)='刘' 应当为student 表中的sname 列创建哪一种类型的索引? D

A.B 树唯一索引 B.位图索引 C.B 树不唯一索引 D.基于函数的索引 7.假设在一个表的3 个字段NAME、SEX 和MONTH_OF_BIRTH 中分别保存姓名、性别和 出生的月份数据,则应当为这3 个字段分别创建何种类型的索引? D

A.全部创建B 树索引 B.全部创建位图索引 C.分别创建B 树索引、位图索引和位图索引 D.分别创建B 树索引、位图索引和基于函数的索引

8.如果创建的表其主键可以自动编号,则应该为主键创建的索引是哪种类型? A

A.反向键索引 B.B 树索引 C.位图索引 D.基于函数的索引

第十一章 一、填空题

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

2.视图与数据库中的表非常相似,用户也可以在视图进行INSERT、UPDATE、和DELETE

操作。通过视图修改数据时,实际上是在修改基本表中的数据;相应地,改变基本表中的数 据也会反映到该表产生的视图中。

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

4.下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000 后, 序列值重新返回到2.在空白处填写适当的代码,完成上述要求。 Create sequence seg_test Start with 2 Increment by 2 Maxvalue 1000 Cycle;

二、选择题

1.如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记 录添加到视图,应当在定义视图时指定下列哪一个子句? C

A.WITH GRANT OPTION B.WITH READ ONLY C.WITH CHECK OPTION D.WITH CHECK ONLY 2.在下列模式对象中,哪个对象不会占用实际的存储空间? A

A.视图 B.表 C.索引 D.簇

3.如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字典视图? D

A.DBA_VIEWS B.DBA_OBJECTS C.DBA_CLU_COLUMNS D.DBA_UPDATABLE_COLUMNS 4.在下列各选项中,关于序列的描述哪一项是不正确的? D A.序列是Oracle提供的用于产生一系列唯一数字的数据库对象 B.序列并不占用实际的存储空间

C.使用序列时,需要用到序列的两个伪列NEXTVAL 与CURRVAL。其中,NEXTVAL 将返回序

列生成的下一个值,而CURRVAL 返回序列的当前值

D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值 5.在下列各选项中,关于同义词的描述哪一项是不正确的? B

A.同义词是数据库对象的一个替代名,在使用同义词时,Oracle 会将其翻译为对应的对

象名称

B.在创建同义词时,所替代的模式对象必须存在 C.Oracle 中的同义词分为公有同义词和私有同义词

D.公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有

第十二章 一、填空题

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

After insert on TEST for each row Begin

:new.data:=upper(:new.data); End;

2.BEFORE 和AFTER 指定了触发器的触发时间。当为一个表配置了约束时,它们将会特别 有用,BEFORE 可以规定Oracle 在应用约束前调用触发器,而AFTER 规定在应用约束后 调用触发器。

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

Create or replace trigger biud_student_trigger

Before insert or update or delete on student Declare

Action action_type.type%type; Begin

if 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.下列哪一个动作不会激发一个触发器? B

A.更新数据 B.查询数据 C.删除数据 D.插入数据 2.在使用CREATE TRIGGER 语句创建行级触发器时,哪一个语句用来引用旧数据? D A.FOR EACH B.ON C.REFERENCING D.OLD 3.在创建触发器时,哪一个语句决定了触发器是针对每一行执行一次,还是针对每一个语句 执行一次? A

A.FOR EACH B.ON C.REFERENCING D.NEW 4.替代触发器可以被附加到哪一类数据库对象上? C

A.表 B.序列 C.视图 D.簇 5.下列哪个语句用于禁用触发器? C

A.ALTER TABLE B.MODIFY TRIGGER C.ALTER TRIGGER D.DROP TRIGGER 6.条件谓词在触发器中的作用是D 。

A.指定对不同事件执行不同的操作 B.在UPDATE 中引用新值和旧值

C.向触发器添加WHEN 子句 D.在执行触发器前必须满足谓词条件 7.可以使用哪个子句来更改相关性标识符的名称? A

A.REFERENCING B.WHEN C.INSTEAD-OF D.RENAME