数据库-表分区

1.范围分区

--范围分区
--这是一个销售表
Create table sales1(
Sales_id number,  --id
product_id varchar2(5), --产品编号
 sales_date date  not null, --销售时间
  sales_cost number(10), --售价
  areacode varchar2(5)   --地区
)

partition by range (sales_date)( --分区 范围分区 时间
   partition p1 values less than (to_date('2013-04-1','yyyy-mm-dd')),
   partition p2 values less than (to_date('2013-07-1','yyyy-mm-dd')),
   partition p3 values less than (to_date('2013-10-1','yyyy-mm-dd')),
   partition p4 values less than (to_date('2014-01-1','yyyy-mm-dd')),
   partition p5 values less than(maxvalue)
);

 --插入数据的时候,如果数据的日期在2013-04-1前,数据插入到p1 分区

--插入数据的时候,如果数据的日期在2013-04-1前,数据插入到p1 分区

insert into sales1 values(1,'p1',to_date('2013-04-1','yyyy-mm-dd'),100,'025');
insert into sales1 values(1,'p1',to_date('2015-04-1','yyyy-mm-dd'),200,'026');

select *  from sales1;

--查分区
select * from sales1 partition(p1);
select * from sales1 partition(p2);
select * from sales1 partition(p5);

--视图
--前面p5是视图 后面p5是分区。

create view p5 as select * from sales1 partition(p5);

select * from p5;

--sys
grant create view to scott;

--授权
grant select on scott.p5 to user06;

--user03 看不见 scott.p5 的视图 除非授权。
select * from scott.p5; 

2.散列分区

--创建表空间
grant create tablespace to scott;

create tablespace tablespace01 datafile 'd:/a01.dbf' size 10m;
create tablespace tablespace02 datafile 'd:/a02.dbf' size 10m;
create tablespace tablespace03 datafile 'd:/a03.dbf' size 10m;

--这是一个销售表
Create table sales2(
Sales_id number,  --id
product_id varchar2(5), --产品编号
 sales_date date  not null, --销售时间
  sales_cost number(10), --售价
  areacode varchar2(5)   --地区
)
partition by hash(sales_id)( --通过id 分区 给表空间
partition p1 tablespace tablespace01,
partition p2 tablespace tablespace02,
partition p3 tablespace tablespace03
);


--插入四条数据

insert into sales2 values(1,'A1',to_date('2013-04-1','yyyy-mm-dd'),100,'025');
insert into sales2 values(6,'A2',to_date('2015-04-1','yyyy-mm-dd'),200,'026');
insert into sales2 values(7,'A2',to_date('2015-04-1','yyyy-mm-dd'),200,'027');
insert into sales2 values(8,'A3',to_date('2015-04-1','yyyy-mm-dd'),200,'028');

3.列表分区


--创建表
Create table sales3(
Sales_id number,  --id
product_id varchar2(5), --产品编号
 sales_date date  not null, --销售时间
  sales_cost number(10), --售价
  areacode varchar2(5)   --销售地区 华北 华南 华中
)
--通过地区列表划分
partition by list(areacode)(
partition t1 values('025','035'),
partition t2 values('372','373'),
partition t3 values(default)
);

insert into sales3 values(7,'c1',to_date('2012-02-02','yyyy-mm-dd'),10,'025');
insert into sales3 values(8,'c1',to_date('2012-02-05','yyyy-mm-dd'),20,'035');
insert into sales3 values(9,'c1',to_date('2012-02-08','yyyy-mm-dd'),30,'372');
insert into sales3 values(9,'c1',to_date('2012-02-09','yyyy-mm-dd'),40,'379');


select * from sales3 partition(t1);
select * from sales3 partition(t2);
select * from sales3 partition(t3);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值