partition by hash(deptno)
(partition p1 tablespace p1,
partition p2 tablespace p2);
create table sales_hash
(salesman_id number(5),
salesman_name varchar2(30),
sales_amount number(10),
week_no number(2))
partition by hash (salesman_id)
partitions 4
store in (data1,data2,data3,data4)
data1,data2,data3,data4 为表空间名。
散列分区表的每个分区都被存储在单独的段中。
3.List分区:列表分区
List分区可以控制如何将行映射到分区中去。可以在每个分区的键上定义离散的值
不同于Range分区和Hash分区,
Range分区与分区相关联,为分区列假设了一个值的自然范围,故不可能将该值的范围以外的分区组织到一起。
hash分区时不允许对数据的划分进行控制,因为系统使用的是散列函数来划分数据的。
List分区的优点在于按照自然的方式将无序和不相关的数据集合分组。
List分区不支持多列分区,如果将表按列分区,那么分区键就只能有表的一个单独列组成。
Range分区和Hash分区可以对多列进行分区。
List分区时必须指定的以下内容
分区方法:list
分区列
分区描述,每个描述指定一串文字值(值的列表),它们是分区列(它们限定将被包括在分区中的行)的离散值
示例:
create table sales_list
(salesman_id number(5),
salesman_name varchar2(30),
sales_state varchar2(20),
sales_amount number(10),
sales_date date)
partition by list (sales_state)
(
partition sales_west values ('California','Hawaii') tablespace x,
partition sales_east values ('New York','Virginia') tablespace y,
partition sales_central values ('Texas','Illinois') tablespace z,
partition sales_other values(DEFAULT) tablespace o
);
添加分区:
alter table sales3 add partition hk values ('HK') tablespace xx