Oracle学习笔记 视图,索引,序列,同义词
–
9.1 视图对象
视图是一张虚表,基于查询语句。并不在数据库中存储真实的数据信息,只在数据字典中存储视图的定义信息。
视图和表之间存在非常密切的联系,如果对其中任何一方做了修改,必定影响另一方。
视图方便了查询,同时也保证了数据的逻辑独立性。并且对数据也是一种保护的策略。
-
视图定义:
视图是从一个或多个表或视图中提取出来数据的一种表现形式。是由一条SELECT子查询语句定义的一个逻辑表,只有定义而无数据,是一个虚表(命了名的SELECT语句)。 -
使用视图的目的:
- 提供各种数据表现形式
- 提供某些安全性保证
- 隐藏数据的逻辑复杂性并简化查询语句
- 执行某些必须使用视图的查询
- 简化用户权限的管理
9.1.1 创建视图
- 必须先授予用户创建视图权限
grant create view to scott;
- 创建视图
- 创建包含emp表中empno、ename和job列的视图VIEW_EMP
create or replace view view_emp as
select empno,ename,job from emp;
- 在VIEW_EMP中加入一条记录(2014,‘Tom’,‘CLERK’)
insert into view_emp values(2014,'Tom','CLEAK');
- 将2014号员工的job改为‘SALESMAN’
update view_emp
set job='SALESMAN'
where empno=2014;
- 创建一个只读视图VIEW_EMP_SELECT,用于获得部门编号30中sal在1000~3000之间的员工信息。
create or replace view view_emp_select
as
select * from emp
where deptno = 30 and (sal between 1000 and 3000);
- 删除视图
drop view view_emp_select;
–
9.2 索引
9.2.1 概述
如果要在表中查询指定的记录,在没有索引的情况下,必须遍历整个表,而有了索引之后,只需要在索引中找到符合查询条件的索引字段值,就可以通过保存在索引中的ROWID快速找到表中对应的记录。举个例子来说,如果将表看作一个本书,则索引的作用则类似于书中的目录。在没有目录的情况下,要在书中查找指定的内容必须阅读全书,而有了目录之后,只需要通过目录就可以快速找到包含所需内容的页码(相当于ROWID)
索引是建立在表上的可选对象。索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率。
用户在进行操作时,不需要考虑索引的存在,索引只与系统性能相关
- 自动创建: 当在创建表时,如果指定了 PRIMARY KEY或者 UNIQUE约束,那么将自动创建索引.
- 手动创建: 用户可以在某个列上建立非唯一的索引,以加快基于该行的查询.
创建索引,以提高对表EMP的ENAME列的访问速度.
create index emp_ename_idx on emp(ename);
删除索引
drop index emp_ename_idx;
–
9.3 序列
9.3.1 什么是序列
- 自动产生唯一的、连续的整数
- 是一个可以共享的数据库对象
- 典型地用于产生数据库表中的主键值、唯一键的值
- 能够节省应用程序的代码
- 当缓存在内存中时,能够提高存取的效率
创建序列
create sequence cyd_seq
start with 100
increment by 10
maxvalue 200
cycle;
创建一个表,包含一个整形的字段
create table cyd(
cyd_no number
);
在tab1中插入序列的值
insert into cyd values(cyd_seq.nextval);