Oracle-5-2数据库对象(索引、视图、聚集、序列、同义词)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据字典: 数据字典: user_indexes 提问:索引是不是越多越好? 提问:索引是不是越多越好?
Oracle数据库对象 Oracle数据库对象
视图
视图:是由一个或多个表(或其它视图)中的 视图:是由一个或多个表(或其它视图) 数据的一种定制的表示,是用一个查询定义, 数据的一种定制的表示,是用一个查询定义, 所以可以认为是一个存储的查询。 所以可以认为是一个存储的查询。
Oracle数据库对象 Oracle数据库对象百度文库
索引
按特定的顺序定位、查找表中的记录,可以使用 按特定的顺序定位、查找表中的记录, 索引
作用:可提高查询速度 作用: 唯一索引: 唯一索引: 字段1字段2 字段N CREATE UNIQUE INDEX 索引名 ON 表 (字段1字段2…字段N); 普通索引: 普通索引: 字段1字段2 字段N CREATE INDEX 索引名 ON 表(字段1字段2…字段N); 反向键(逆键)索引: 反向键(逆键)索引: CREATE INDEX 索引名 ON 表(字段1字段2…字段N) REVERSE; 字段1字段2 字段N 重建逆键索引为非逆键的索引(不可以将正常的索引重建为逆键索引): 不可以将正常的索引重建为逆键索引): ALTER INDEX idx_dept REBUILD NOREVERSE; 位图索引: 位图索引: 字段1字段2 字段N); CREATE BITMAP INDEX 索引名 ON 表(字段1字段2…字段N);
Oracle数据库对象 Oracle数据库对象
索引
按特定的顺序定位、查找表中的记录,可以使 按特定的顺序定位、查找表中的记录, 用索引
作用:可提高查询速度 作用: 函数索引: 函数索引: 函数名(字段参数列表)); CREATE INDEX 索引名 ON 表(函数名(字段参数列表)); 删除索引: 删除索引: 索引名; DROP INDEX 索引名;
Oracle数据库对象 Oracle数据库对象
作业
作业
功能: 功能:
通过视图检索数据(隐藏了数据的复杂性) 通过视图检索数据(隐藏了数据的复杂性) 复杂的查询编写为视图(为用户简化了SQL命令) SQL命令 复杂的查询编写为视图(为用户简化了SQL命令) 限制视图只能访问基表部分特定的数据(隔离了基表的结构变化, 限制视图只能访问基表部分特定的数据(隔离了基表的结构变化, 保护了表中的敏感数据,为表提供附加的安全性) 保护了表中的敏感数据,为表提供附加的安全性)
现在来测试下用视图来操作表数据有哪些限制
Oracle数据库对象 Oracle数据库对象
簇(Cluster)
聚集(Cluster) (Cluster)是存储表数据的可选择的方法. 一 个聚集是一组表,将具有同一公共列值的行存储 在→起,并且它们经常一起使用。这些公共列构 成聚集码.例如, EMP 表和DEPT表共享DEPTNO 列.所以EMP表和DEPT表可聚集在一起,聚集码 的列为DEPTNO列,该聚集将每个部门的全部职 工行、该部门的行物理地存储在同一数据块中. 在读数据块时,该数据块中聚集表的所有数据被 读取(到SGA),这是建立聚集的主要原因.因此聚集 主要使用在有相关数据的两个表中且在一起被频 繁访问.
Oracle数据库对象 Oracle数据库对象
可使用伪列访问值
– CURRVAL
返回序列的当前值
序列
– NEXTVAL
返回序列首次引用时的起始值 以后对 nextval 的引用将使用 INCREMENT BY 子句增加序列 值,并返回新值 删除序列: 删除序列: DROP SEQUENCE 序列名 修改序列: 修改序列: ALTER SEQUENCE 序列名 INCREMENT BY n CACHE n; 不能修改start 不能修改start with
创建视图的语法: 创建视图的语法:
CREATE [OR REPLACE] [FORCE] VIEW view_name [(alias[, alias]...)] AS select_statement [WITH CHECK OPTION] [WITH READ ONLY];
删除视图: 删除视图: DROP VIEW <视图名> <视图名 视图名>
Oracle数据库对象 Oracle数据库对象
序列
序列
定义:按照设定的规则自动产生数据的方案。 定义:按照设定的规则自动产生数据的方案。 语法: 语法: create sequence 序列名 增长值] 开始值] [increment by 增长值] | [start with 开始值] [maxvalue 指定最大值 | nomaxvalue(10^27或-1)] nomaxvalue(10^27或 nominvalue(1或 [minvalue 最小值 | nominvalue(1或-10^26)] n(预分配 个序列号保存在内存中) 预分配n [CACHE n(预分配n个序列号保存在内存中) | NOCACHE] nocycle(默认) [cycle | nocycle(默认)] 序列的使用: 序列的使用: 序列名.NEXTVAL DUAL; SELECT 序列名.NEXTVAL FROM DUAL;
Oracle数据库对象 Oracle数据库对象
簇(Cluster)
一 创建簇 create cluster Class_cluster( classNO varchar2(10) ) tablespace users; 二 簇的索引 create index idxClassCluster on cluster Class_cluster; --只有建立了聚集索引才可能使用聚集 三 基于簇创建表 create table stuClass( ClassNo varchar2(10), ClassName varchar2(20) ) cluster Class_cluster(ClassNo); create table student( stuno varchar2(10), stuName varchar2(10), ClassNO varchar2(10) ) cluster Class_cluster(ClassNo); 四 删除簇 drop cluster 簇名 [INCLUDING TABLES --删除属于聚集的所有表 [CASCADE CONSTRAINTS]]; --从聚集外的表中删除引用聚集表主键或唯一 键的全部引用完整性约束.若省略该选项,且有这样的引用完整性约束,则会出错,且 不删除该聚集.
Oracle数据库对象 Oracle数据库对象
视图
注意:视图可以和基本表一样被查询,但是利用视图进行 但是利用视图进行 注意:视图可以和基本表一样被查询,但是
数据增,删,改操作,会受到一定的限制。 如果视图包含以下内容就会是一个不可更改的视图: 如果视图包含以下内容就会是一个不可更改的视图:
1.连接操作符 1.连接操作符 2.DISTINCT 操作符 3.集合操作符 3.集合操作符 4.聚合函数 4.聚合函数 5.GROUP BY 子句 6.伪列rownum或表达式 6.伪列rownum或表达式
Oracle数据库对象 Oracle数据库对象
同义词
同义词
定义:定用一个别名来代替“用户名.对象名” 定义:定用一个别名来代替“用户名.对象名” 功能: 功能:安全性高 语法结构: 语法结构: 用户名. CREATE [public] SYNONYM 同义词名 FOR 用户名.对象名 使用同义词: 使用同义词: SELECT * FROM 同义词 删除同义词: 删除同义词: DROP [public] SYNONYM 同义词