学习笔记:
##视图
* 概念:视图就是提供一个查询的窗口,所有数据来自于原表。
* 方法:
* 查询语句创建表:
* create table emp as select * from scott.emp;
* 创建视图【必须有dba权限】
* create view v_emp as select ename, job from emp;
* 查询视图
* select * from v_emp;
* 修改视图【不推荐】
* update v_emp set job='CLERK' where ename='ALLEN';
* --做增删改需要加commit
* commit;
* 创建只读视图(with read only)
* create view v_emp1 as select ename, job from emp with read only;
* 作用:
* 1. 视图可以屏蔽掉一些敏感字段。
* 2. 保证总部和分部数据及时统一。
##索引
* 概念:索引就是在表的列上构建一个二叉树。
* 作用:
* 达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。
* 方法:
* 单列索引
* 复合索引
* 单列索引
* 创建单列索引:
* create index idx_ename on emp(ename);
* 注意:
* 单列索引触发规则,条件必须是索引列中的原始值。
* 单行函数,模糊查询,都会影响索引的触发(不会触发索引)。
* select * from emp where ename='SCOTT'
* 复合索引
* 创建复合索引:
* 复合索引中第一列为优先检索列。
* 如果要触发复合索引,必须包含有优先检索列中的原始值。
* create index idx_ename_job on emp(ename,job);
* 注意:
* select * from emp where ename='SCOTT' and job = 'ANALYST'; --触发复合索引
* select * from emp where ename='SCOTT' or job = 'ANALYST'; --不触发索引
* select * from emp where ename='SCOTT'; --触发单列索引
* 判断索引是否被触发(查看执行计划结果)
* 1. 生成执行计划
* explain plan for
* select * from emp where ename='SCOTT';
* 备注:explain plan for后面为要生成执行计划的查询语句
* 2. 查看执行计划的结果
* select * from table(dbms_xplan.display);