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用户使用。