设为首页 加入收藏

TOP

Oracle学习与开发基本概念汇总(三)
2015-11-21 03:26:37 来源: 作者: 【 】 浏览:35
Tags:Oracle 学习 开发 基本 概念 汇总
唯一性标识。

4. 使用索引的好处:

?

(1) 创建唯一索引后保证每行数据的唯一性。

(2) 可以加速检索数据的速度。

(3) 多表查询时加速表之间的连接。

(4) 减少分组和排序的时间。

?

?

5. 适合创建索引的字段具有的特点:

?

(1) 取值范围较大的字段

(2) Null值比较多的字段

(3) 经常作为查询和连接条件的字段

(4) 经常需要排序的字段

?

?

6. 不适合创建索引的表或字段的特点:

?

(1) 较小的表

(2) 经常更新的表

(3) 不经常作为查询和连接条件的字段

?

?

?

7. 索引类型:B树索引、位图索引、反向键索引、基于函数的索引、全局索引、局部索引

8. B树索引是Oracle默认的索引类型。适合被索引的列值基本没有相同的值。

9. B树索引优点:

?

(1) B树中所有叶子节点基本处于同一深度。所以查询任何记录的时间基本相同。

(2) B树的索引结构是自动保持平衡的。

(3) B树为一定范围的查询提供了极好的性能。

(4) B树的插入、更新、删除效率高。

(5) B树索引的性能不会因为表的大小增长而降低。

?

?

10. 位图索引:也采用B树索引,只是索引值全部集中在叶子节点上。适合检索很少有唯一值的列,比如性别。

11. Oracle中,系统会自动为表的主键列建立索引,这个默认的索引是B树索引。

12. 反向键索引:特殊的B树索引,适合为有序数列建立索引。避免有序数列构成B树的“歪树”现象,使树比较均匀。

13. 函数索引:也是B树索引,是基于字段的函数建立的,而不是直接建立在字段上。

14. 函数索引的作用:

?

(1) 只对限定的行创建索引,节约空间,提高检索速度。

(2) 优化where子句使用了函数的SQL语句。

?

?

?

简答题:

1. 简述索引的类型有哪些,并说明什么情况下适合建立反向键索引,什么情况下适合建立位图索引?

?

答:索引类型:B树索引、位图索引、反向键索引、基于函数的索引、全局索引、局部索引

?

反向键索引适合建立在有序数列上。

?

位图索引适合建立在很少有唯一值的列,比如性别。如果列中的唯一值和总的记录数之比少于1%,则适合于位图索引。

?


第十章 序列

1. 序列也是方案对象,用于产生一系列唯一数字。可以用它自动生成主键值

2. 序列可以在多用户并发环境中使用,为所有用户生成不重复的顺序数字而且不需要额外的IO开销。

3. 用户在自己的方案中创建序列,必须要有create sequence系统权限,在其他方案中创建序列,必须要有create any sequence系统权限。

4. 用户可以使用nextval和currval两个运算符访问序列的值。nextval将返回序列生成的下一个值,currval将返回序列的当前值。第一次使用序列时,需要使用nextval,此时返回的是初始值。以后再使用nextval运算符,序列会自动增加increment by后面的值。

5. 修改其他方案中的序列时,用户必须具有alter any sequence系统权限。

?

?

?

简答题:

1. 简述序列的概念。

?

答:序列可在当前方案下产生一系列唯一数字,可以用这些数字产生表的主键值,也可以参与其他运算。序列也可在多用户并发环境中使用,为所有用户生成不重复的顺序数字,而不需要任何的额外I/O开销.

?

?

2. 序列常用的两个运算符是什么?各代表什么意义?

?

答:nextval运算符和currval运算符

nextval将返回序列生成的下一个值,currval将返回序列的当前值。


第十一章 触发器

1. 触发器是一种特殊的存储过程,是通过事件触发被系统自动调用的(不是由程序调用,也不是手工启动)。是一个独立的事务,被当做整体执行,在执行过程中发生错误,则整个事务自动回滚。触发器用于加强数据的完整性约束。

2. 按触发器时间划分:before触发器、after触发器、instead of触发器。

3. 按触发事件划分:DML触发器、DDL触发器、用户事件触发器、系统事件触发器。

4. DML触发器分为:行级触发器、语句级触发器

5. DDL触发器分为:数据库级DDL触发器、用户级DDL触发器

6. 行级触发器:使用了for each row. DML 命令每操作一行记录,触发器就被触发一次。当DML语句影响多行记录时,行级触发器被触发多次。

7. 行级触发器有一个重要的特点就是可以在触发器中引用当前DML命令正在操作的行值,包括新值和旧值。这些值被保存在Oracle中的两张临时表中分别是new表和old表。这两张表的结构和DML正在操作的表结构完全相同,但只有一行记录。在new表中包含insert语句要插入的新数据或update语句修改后的新数据,可以在行级触发器中修改他们的值。在old表中包含delete语句删除以前的旧数据或update语句修改前的旧数据,不允许在触发器中修改它们的值。

8. new表和old表是内存中的两张逻辑表,只能在行级触发器中使用,不能在语句级触发器中使用。当用户添加数据或修改数据时,系统先将这些新数据写到内存的new表中,再将new表中的数据写到数据库的物理表中。当用户删除数据或修改数据时,系统先将旧数据写到old表中,再更新物理表中的数据。

?

?

?

简答题:

1. 简述Oracle中的触发器的类型及触发器的条件。

?

答:

(1) 按触发时间分:

Before触发器:在触发语句执行前被触发。

After触发器:在触发语句执行后被触发。

Instead of触发器:触发语句被触发器替代。

?

(2) 按触发事件分

?

DML触发器:对表或试图执行DML操作(select、insert、update)时触发。

DDL触发器:对数据库执行DDL操作(create、alter、drop)时触发。

用户事件触发器:用户执行DCL操作时触发。

系统事件触发器:由系统事件进行触发。


第十二章 事务

1. 事务是一个单独的逻辑工作单元,也是一个操作序列,包含一条或多条语句。这些语句被当做一个整体执行。

2. 一个事务中的语句要么都执行成功,要么都执行失败。一旦某个操作发生异常,则整个是误会重新开始,数据库就会返回事务最开始的状态,所做的所有操作都会取消。如果成功,所有的操作都被执行。

3. Oracle中不能显式的定义一个事务开始,一般在上一个事务结束(回滚或提交)后的第一条语句隐式的定义事务。

4. Oracle可以显式或隐式地结束一个事务。

5. 以下情况表示事务结束

?

(1) commit显式提交事务

(2) rollback回滚事务。注意:若只回滚到保存点(savepoint),整个事务不会结束

(3) 执行DDL语句(create、drop、alter),这些命令单独作为一个事务。在执行这些DDL命令之前将提交以前执行的所有命令;执行DDL命令之后将该DDL命令单独作为一个事务提交;DDL执行之后的其他语句将作为新的事务。

(4) 用户正常断开与Oracle的连接,当前的事务被自动提交。

(5) 用户进程意外终止,当前事务被回滚。

(6) 关闭SQL *Plus会话,默认回滚事务。

?

?

6. 事务的特性:ACID 原子性 一致性 隔离性 持久性

?

?

?

?

简答题:

1. 哪些情况发生后事务将终止?

?

答:

1. commit显式提交事务

2

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle简单查询 下一篇学习数据库笔记五

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: