分类: Oracle
2008-08-28 13:55:19
表分区—列表分区
l 列表分区允许用户明确地控制行到分区的映射
l 不同于范围分区或散列分区,它允许按自然方式对无序和不相关的数据集进行分组和组织
【例如】在客户表中记录着客户的国别信息。它们是中国,美国,法国,英国,加拿大。那么在创建表时,我们可以对表进行列表分区。
Insert into student values(1001,’张三’,50) 往student表中插入数据,会根据50这个值将这条记录放入相应的分区
Select * from student partition(p1); 读取分区p1中的数据
Desc user_tab_partitions; 查看用户创建的表,以及表创建分区的信息
Select table_name,partition_name,partition_position from user_tab_partitions;
Insert into student values(&stun,’&Name’,&score); 交互式插入数据
/ 再次执行
表分区的维护时我们可以做:移动,添加,删除,结合,截断,拆分,合并,交换
添加分区
Alter table student add partition p5 values less than(120);
删除分区
Alter table student drop partition p4;
截短分区
Alter table student truncate partition p5;
合并分区
Alter table student merge partitions p3,p4 into partition p6;
分区数据字典
User_tab_partitions
User_ind_partitions 表索引
数据对象
同义词:数据库对象的替换名称(相当与别名)
优点:--简化SQL语句
--隐藏对象的名称和所有者
--为分布式数据库的远程对象提供了位置透明性
--提供对象的公共访问
l 私有
l 公用
l Create synonym 命令用于创建同义词
l Drop synonym 命令用于删除同义词
l User_synonyms 包含有关同义词的信息
Create synonym employee for scott.emp;访问employee就相当于访问scott.emp表
Create public synonym employee for scott.emp; 创建公用同义词让所有的用户都可以访问
序列: --是能够自动产生连续唯一值的数据库共享对象
--用于为主键提供值
--创建序列语句
create SEQUENCE sequence_name
[INCREMENT BY n] 指定增长的间隔,默认为1
[START WITH n] 起始数,从哪里开始增长
[{MAXVALUE n | NOMAXVALUE}] 设定或不设定最大值,默认不限制
[{MINVALUE n | NOMINVALUE}] 设定或不设定最小值,默认不限制
[{CYCLE | NOCYCLE}] 如果设定,当增长至最大时候,将从起始数重新循环
[{CACHE n | NOCACHE}]; ORACLE初始化时,在缓存区中默认生成一些值,用户在生成值时直接从缓存中
两个重要属性
NEXTVAL 返回下一个可用的值
CURRVAL 获取当前的序列中的值
对于一个新定义的序列必须先用NEXTVAL产生值,再可以用CURRVAL返回当前值
Alter sequence 修改序列定义
Drop sequence 从数据库中删除序列
序列数据字典 USER_SEQUENCES