Oracle数据库对象(视图、序列、索引、同义词)

1、视图

视图是一张虚表(是表但是没有数据,数据来自于视图所依赖的表)

(1)先为用户授权:

管理员登录:

 管理员授权给用户SCOTT:

 (2)视图的创建:

(3)优点:简化查询,有的时候只需查询视图即可,不需要再写复杂的查询语句来查询数据。

(4)删除视图:

drop view 视图名称;

只是删除视图,不会删除表中的数据。

2、序列

序列的功能和auto_increment的功能相同,主要用于提供主键的值,序列输一个数组,存储在内存中,可以提高访问效率。

(1)序列的定义:

CREATE SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是 n 如果 n 是正数就递增,如果是负数就递减 默认是 1(步长)
[START WITH n] //开始的值,递增默认是 minvalue 递减是 maxvalue(数组的第一个值)
[{MAXVALUE n | NOMAXVALUE}] //最大值  
+
[{MINVALUE n | NOMINVALUE}] //最小值 [{CYCLE | NOCYCLE}] //循环/不循环 [{CACHE n | NOCACHE}];//分配并存入到内存中

序列创建完成后,所有的自动增长应该由用户自己处理,存在以下两种操作:

nextval:序列的下一个内容
currval:序列的当前值

创建序列:

 查看数值:

 3、索引

索引用于加速数据存取的数据对象,合理地使用索引可以大大降低IO次数,从而提高数据访问的性能。

(1)索引原理:

 将无序的记录通过建立索引变成了有序的索引表,通过索引表查询员工将加速查询。

(1)未建立索引:

生成执行计划:

 查看执行计划:

 (2)建立索引

 产看执行计划:

 通过占用CPU的对比可以看出建立索引后占用CPU减少(6<5)

(3)多级索引

(4)Oracle中的索引类型

B树索引(默认)

位图索引

(5)不适合建立索引的情况

表很小

列经常作为连接条件或WHERE字句中

查询的数据大于百分之2-4

表经常被更新

4、同义词

就是一个别名(表、视图、触发器)

(1)查看当前用户:在当前用户下不能访问其他用户下的表

(2)授予SCOTT用户权限:

能够访问其它用户下的表:

(3)为hr用户下的employees表取别名:

 该同义词为私有,只能SCOTT用户使用。

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/12363711.html