在列取值难以确定的情况下采用的分区方法
1.hash分区可以由hash键来分布
2.dba无法获知具体的数据值
3.数据的分布由oracle处理
4每个分区有自己的表空间
--建表同上一节
CREATE TABLE ware_retail_part3(
id INTEGER primary key,
retail_date date,
ware_name VARCHAR2(50)
)
--散列分区,自动分配,无需设置条件
partition by hash(id)
(
partition par_01 tablespace TBSP_1,
partition par_02 tablespace TBSP_2
);
--插入数据,查看结果
INSERT into ware_retail_part3 values(99,to_date('2011-11-11','yyyy-mm-dd'),'电脑');
select * from ware_retail_part3 partition(par_01);
select * from ware_retail_part3 partition(par_02);--数据在分区par_02内
案例2.不指定分区名字,由系统默认设置
--散列分区2
CREATE table person
(
id NUMBER primary key,
name VARCHAR2(20),
sex VARCHAR2(2)
)
partition by hash(id)
partitions 2 --此处注意书写是复数形式
store in(tbsp_1,tbsp_2);
--想在表空间里面查看默认的分区名字,但是没有找到,有了解的吗?
案例3散列分区
--散列分区3
CREATE TABLE goods1(
id NUMBER,
goodname VARCHAR2(20)
)
storage(INITIAL 2048k)
partition by hash(id)
(
partition par1 tablespace tbsp_1,
partition par2 tablespace tbsp_2
);
--此案例指定表分区初始化空间,大小为2048K