同义词和序列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
视图、索引、同义词和序列
一、索引——是与表关联的可选结构,可以提高查询速度,影响SQL语句执行速度。
1、创建
(1)企业管理器方式
(2)命令方式
CREATE [UNIQUE|BITMAP] INDEX <索引名> ON <表名>(字段[,字段…])
注意:
●在同一方案中,索引名唯一。
●唯一索引:可以确保表中索引列的值不重复,ORACLE自动为表的主键列或唯一约束
创建唯一索引。
●组合索引:创建时,通常使用频繁的列放置在组合索引列表的前面
●位图索引:通常建立在低基数的列上,也就是不同值的数目比表的行数少的列。在位图
索引中使用每个键值的位图,而不使用ROWID列表。
●三个适当:在适当的表、适当的列上创建适当数量的索引。
2、查看
DBA_ INDEXES 、USER_INDEXES
3、删除:DROP INDEX <索引名>
二、视图——虚拟表,又叫存储的查询。
使用视图的优点:方便、安全
1、创建(使用企业管理器方式略)
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW
view_name [(alias[, alias]...)]
AS select_statement
[WITH CHECK OPTION]
[WITH READ ONLY];
其中各选项含义:
FORCE:可以创建带错误的视图,如基表或查询列不存在,没有查询权限等,默认是NOFORCE选项
WITH CHECK OPTION:用视图插入或更新基表数据时,只能是视图可以访问的行,如果update后的数据不再是视图可以访问的行也是不允许的。
WITH READ ONLY:不能在此视图上执行任何的INSERT/UPDA TE/DELETE操作
注意:(1)视图创建后可以与查询基本表一样使用SELECT语句进行查询
(2)一般情况下,只能对基于“行列子集的视图”进行数据更新,即视图从单个基本表导出的某些行与列,并且保留了主键。
2、查看:DBA_VIEWS、USER_VIEWS
3、删除:DROP VIEW <视图名>
三、同义词SYNONYM——数据库对象的一个别名。
1、创建公有同义词和私有同义词
CREATE[OR REPLA CE][PUBLIC] SY NONY M[方案名.]同义词名FOR [方案名.]对象名
注意:
(1) 私有同义词只能被某个用户访问,公有~可以被所有的数据库用户访问
(2) 用户需要相应权限才可以创建,(不包括在connect,resource角色中)
2、查看
DBA_SYNONYMS 、USER_SYNONYMS
3、删除同义词:DROP SYNONYM [方案名.]同义词名
四、序列SEQUENCE—生成唯一、连续的整数的数据库对象,常用来自动生成主键值。
1、创建序列(创建序列的权限包括在connect,resource角色中)
CREATE SEQUENCE 序列名
[ST ART WITH 初始值]
[INCREMENT BY [-]步长]
[MAXVALUE最大值|NOMAXVALUE]
[MINVALUE 最小值|NOMINVALUE]
[CY CLE|NOCY CLE]
[CA CHE缓存大小|NOCA CHE]
注:增长为正数时,MINVALUE必须小于或等于ST A RT WITH, MA XVALUE必须大于或等于ST ART WITH;反之,…
MINVALU E~MAXVALUE用于给序列取值划定一个大致的范围,如有ST A RT WITH则从ST ART WITH开始取值。当从小到大的序列号数目小于CACHE数时,不能用CYCLE选项。
NOMA XVALUE:将升序的最大值设为1027,降序序列的最大值设为-1,默认选项
NOMINVALUE:将升序序列的最小值为1,降序序列的最小值设为-1026,默认选项CYCLE:指定序列在达到最大值或最小值后继续从头开始生成值,如果指定CY CLE,则必须要保证CACHE的取值<=循环前序列产生的值的个数
CACHE:预先分配一组序列号并将其保留在内存中,可加快访问速度,默认为20。
2、访问序列
通过NEXTVAL和CURRVAL来访问
3、更改序列
ALTER SEQUENCE……注意:不可更改ST ART WITH参数
4、查看序列
DBA_SEQUENCE
5、删除序列:DROP SEQUENCE[<方案名.>]<序列名>
【注】同义词、序列都可以用企业管理器创建,如何创建由学生课前、课后自学完成
SQL> conn / as sysdba
已连接。
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERA TIONS BOSTON
SQL>
SQL> CREA TE OR REPLACE PUBLIC SYNONYM dept FOR scott.dept;
同义词已创建。