oracle数据库对象
15
临时表
临时表:在一个会话或者是一个事务中保存临时数据的表。 有两种类型: 会话临时表(Session-Specific Temporary Table ) CREATE GLOBAL TEMPORARY TABLE ... [ON COMMIT PRESERVE ROWS ] 事务临时表(Transaction-Specific Temporary Table ) CREATE GLOBAL TEMPORARY TABLE ... [ON COMMIT DELETE ROWS ]
26
重建索引
为什么要重建索引? 对索引的表中的数据进行频繁的更新操作和删除时, 会导致索引的表空间中产生大量的碎片,会对查询和DM L语句的性能造成很大的影响;同时,会导致空间的浪费; 如何重建? 可以使用alter index ….. Rebuild来进行索引的重 建工作。
21
唯一索引
唯一索引 • 确保在定义索引的列中没有重复的值 • Oracle 自动为主键和唯一键列创建唯一索引 • CREATE UNIQUE INDEX 语句用于创建唯一索引
22
组合索引
组合索引 • 在表的多个列上创建的索引 • 也称为“连接索引” • 组合索引中的列可以按任意顺序排列 • 对于在 WHERE 子句中包含多个列的查询,可以提高数据 访问速度
4
表空间分类
表空间分为本地管理表空及字典管理表空二大类: a.本地管理表空 本地管理表空: 本地管理表空 减少了对数据字典表的争用 分配或回收空间时不生成还原数据 无需合并 建立本地管理表空方法如下:
CREATE TABLESPACE userdata DATAFILE ‘/home/ecif/oradata/dbs/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
5
表空间分类
b.字典管理的表空间 b.字典管理的表空间 在数据字典中管理区 存储在表空间中的每个段都可以有不同的存储子句 需要合并
CREATE TABLESPACE userdata DATAFILE ‘/home/ecif/oradata/dbs/userdata01.dbf ' SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE ( initial 1M NEXT 1M );
1
表空间和数据文件
Oracle 在逻辑上以表空间存储数据,而实际上以数据文件 进行存储。 表空间: – 某一时刻只能属于一个数据库 – 由一个或多个数据文件组成 – 可进一步划分为逻辑存储单元 数据文件: – 只能属于一个表空间和一个数据库 – 是方案对象数据的资料档案库
16
约束
约束强制规则在表级,是为了防止无效的数据进入表中而 设置的,由ORACLE数据库服务器对进入表中的数据进行的合 法性检查。 如果有从属关系,约束防止表的删除• 主要的约束类型有: –NOT NULL NOT –UNIQUE 唯一性约束 UNIQUE –PRIMARY KEY PRIMARY –FOREIGN KEY FOREIGN –CHECK CHECK
19
索引特点
加快 SQL 语句的执行 减少磁盘 I/O CREATE INDEX 语句用于创建索引 在逻辑上和物理上独立于表中的数据 Oracle 自动维护索引
ቤተ መጻሕፍቲ ባይዱ
20
索引分类
从逻辑上,索引可分为以下几类 – 单列/组合索引 – 唯一/非唯一 – 函数索引 从物理上,索引可以分为以下几类 – 分区或非分区 – B 树 – 位图(位图索引不能是唯一索引)
25
创建索引
参数说明 其中UNIQUE指定索引所基于的列(或多列)值必须唯一;默 认的索引是非唯一索引。Oracle 9i建议不要在表上显示定 义唯一索引;BITMAP指定建立位图索引而不是b-tree索引; index_name表示创建的索引名字;table_name指要创建索引 的表;cluster_name指创建索引的簇;n可以为任意正整数 值;tablespace_name表示要用于该索引的表空间。只有确 保拥有CREATE ANY INDEX系统权限时,才能使用CREATE INDEX语句。像INIYTRANS,MAXTRANS,PCTFREE,STORAGE, TABLESPACE等与存储有关的参数可以使用用户定义的缺省值。 参数No sort告诉Oracle 9i该表已经排序因此不需要再重新 排序。
100M app_data_02.dbf
200M app_data_03.dbf
8
删除表空间
不能删除下列表空间: – SYSTEM 表空间 – 具有活动段的表空间 INCLUDING CONTENTS 将删除段 INCLUDING CONTENTS AND DATAFILES 将删除 数据文件 CASCADE CONSTRAINTS 将删除所有引用完整性约束
23
基于函数的索引
基于函数的索引 • 基于一个或多个列上的函数或表达式创建的索引 • 表达式中不能包含聚集函数(sum,count,avg,min,max) • 不能在 LOB、REF 或嵌套表列上创建
24
创建索引
创建索引的语法形式 CREATE [UNIQUE | BITMAP] INDEX index_name ON table_name (column_name[ASC | DESC][,column_name[ASC | DESC]] …) [CLUSTER cluster_name] [INITRANS n] [MAXTRANS n] [PCTFREE n] [STORGE storage] [TABLESPACE tablespace_name] [NO sort]
6
改变数据文件的大小
通过如下命令改表数据文件的大小
ALTER DATABASE DATAFILE '/home/ecif/oradata/dbs/user01.dbf ' RESIZE 200M;
7
向表空间中添加数据文件
11
表的类型
常规表
分区表
12
创建分区表
表的分区类型: Hash分区 范围分区 列表分区 组合分区 Hash partitioning Composite partitioning
List partitioning
Range partitioning
13
17
定义约束示例
CREATE TABLE constraint_tab_infor( cust_id INTEGER PRIMARY KEY , first_name VARCHAR2(40) NOT NULL , age INTEGER CONSTRAINT age_constraint NOT NULL , salary NUMBER(18,2) CONSTRAINT salary_min CHECK( salary > 0 ) , email VARCHAR2(256), CONSTRAINT cust_email_uk UNIQUE(email) );
10
ORACLE内置的数据类型 内置的数据类型
Data type User-defined Scalar CHAR(N), NCHAR(N) VARCHAR2(N), NVARCHAR2(N) NUMBER(P,S) DATE TIMESTAMP RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID, UROWID Built-in Collection VARRAY TABLE Relationship REF
18
索引的概念
索引允许Oracle 更快地访问数据。系统创建 了这个内部的数据结构(即索引),它导致当查 询以列为索引的时候搜索行,这样查询会快得 多。这个索引对于给定的列值通知Oracle找到 表中某一行,这有点类似书的索引,它告诉你 对于给定的关键字你能找到哪一页。 从内部结构看,索引就是一个表。索引具有多 行数据,在索引的列中包括一个索引的列的拷 贝和在被索引的表的相应的行ID。
2
表空间的类型
SYSTEM 表空间 – 随数据库创建 – 包含数据字典 – 包含SYSTEM 还原段 SYSTEM 非SYSTEM 表空间 SYSTEM – 用于分开存储段 – 易于空间管理 – 控制分配给用户的空间量
3
创建表空间
分区表的作用
减少I/O 提供表的数据的可维护性 提高访问性能 支持并行操作 等等
14
建表原则
创建表:原则 将各个表存放在单独的表空间中。 使用本地管理的表空间以避免产生存储碎片。 将表的标准区大小设置小一些,以减少表空间 存储碎片。
oracle 数 据 库 对 象
ORACLE数据库对象 数据库对象
ORACLE数据库主要有如下的数据库对象 tablespace and datafile(表空间和数据文件) Table(表) Constraints(约束) index(索引) View(视图) SEQUENCE(序列) Synonyms(同义词,又称别名) DB-LINK(数据库链路)
使用以下命令创建表空间: CREATE TABLESPACE 使用CREATE TABLESPACE 命令可创建表空间: CREATE TABLESPACE tablespace [DATAFILE clause] [MINIMUM EXTENT integer[K|M]] [BLOCKSIZE integer [K]] [LOGGING|NOLOGGING] [DEFAULT storage_clause ] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY] [extent_management_clause] [segment_management_clause]