Oracle模式对象整理

对模式的基本整理:(Oracle 10g)
在Oracle中,数据库对象是以模式为单位进行组织和管理的。模式是指一系列逻辑数据结构或对象的集合,模式与用户相对应,一个模式只对应一个用户,并且模式名称与用户名称相同。不同模式的数据库对象可以同名。
表、索引、索引化表、、分区表、物理化视图、数据库链接、序列、同义词、PL/SQL包、存储函数与存储过程、Java类与其他Java资源等属于特定的模式,成为模式对象。表空间、用户、角色、目录、概要文件及上下文等数据库对象不属于任何模式,称为非模式对象。
一、表可根据数据组织方式分为标准表、索引化表、分区表、外部表等;表的管理主要包括表的创建、表约束、表参数设置、修改和删除等。
1、 表的创建: create table employee(
empno number(5) primary key,
ename varchar2(15),
deptno number(5) not null constraint fk_emp references dept(deptno)
)
tablespace users
pectfree 10 pctused 40
storage(initial 50K next 50K maxextents 10 pctincrease 25);
2、临时表分为事务级别的临时表和会话级别的临时表:
事务级别的临时表,在事务提交是系统自动删除表中的所有记录(ON COMMIT DELETE ROWS)
create global temporary table tran_temp(
id number(2) primary key,
name varchar2(20)
)
on commit delete rows
会话级别的临时表,在会话结束时系统自动删除表中所有的记录(ON COMMIT PRESERVE ROWS)
create global temporary table sess_temp(
id number(2) primary key,
name varchar2(20)
)
on commit preserve rows;

3、表的约束:主键约束、唯一性约束、检查约束、外键约束、空/非空约束。
通常,表中的约束应该处于激活状态,但对于一些特殊的操作。由于性能方面的原因,有时会暂时将约束设置处于禁用状态, 例如:利用SQL*Loader从外部数据源提取大量数据到数据库中;进行数据库中数据大量的导入、导出操作; 针对表执行一项包含大量数据的批处理操作。
4、表参数设置:TABLESPACE、STORAGE、 数据块管理参数(PCTFREE、PCTUSED、INITRANS、MAXTRANS)、
LOGGING与NOLOGGING,默认为LOGGING
5、修改表:列的添加、删除、修改;表参数修改;表结构重组(MOVE);表重命名(RENAME);为表和列添加注释
(COMMENT ON)
二、索引是建立在表列上的数据库对象,但不依赖于表。
索引分类:唯一索引和非唯一索引、平衡索引和位图索引、单列索引和复合索引。
三、分区表与分区索引
一个表可以分割成任意数量的分区,通常一下情况可考虑分区:表的大小超过2G;要对一个表进行DML操作时必须分区;为了平衡硬盘的I/O,需要将一个表分散存储在不同的表空间中,必须对表进行分区;需要将表的一部分设置为只读,另一部分设置为可更新的时候,必须分区。
1、创建分区表:范围分区、列表分区、散列分区、复合分区
范围分区:按分区列值的范围划分
create table student_range(
sno number primary key,
sname varchar2(10),
sage int,
birthday date
)
partition by range(birthday)
(
partition p1 values less than (to_date(‘1980-1-1’,’YYYY-MM-DD’)) tablespace r1,
partition p2 values less than (to_date(‘1990-1-1’,’YYYY-MM-DD’)) tablespace r2,
partition p2 values less than (maxvalue) tablespace r3 storage(initial 20M next 10M
maxentents 10)
);
列表分区:分区列的之不能划分范围,同时分区列的值只包含少数值的集合
create table student_List(
sno number primary key,
sname varchar2(10),
sex char(2) check(sex in (‘M’,’F’))
)
partition by List(sex)
(
partition student_male values(‘M’) tablespace r1,
partition student_female values(‘F’) tablespace r2,
);
散列分区:均等分配数据
create table student_Hash(
sno number primary key,
sname varchar2(10),
)
partition by Hash(sno)
(
partition p1 tablespace r1,
partition p2 tablespace r2,
);
复合分区:范围-列表复合分区、范围-散列复合分区
2、创建分区索引 :本地分区索引(为分区表中的各个分区单独建立索引)、全局分区索引(对整个分区表建立索引,然后在对
该分区索引进行分区,各索引分区之间不是相互独立的,索引分区与表分区之间也不是一一对应的关系)、
全局非分区索引(对整个分区表创建标准的为分区的索引)。
四、其他模式对象
视图:简单视图(数据来源于一个基本表)、复杂视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值