学习内容
学习openGauss数据库分区表的基本使用,这是一个以前没有接触过的东西,比较新鲜,也比较有难度。
课程学习
学习目标
学习openGauss分区表
分区表是把逻辑上的一张表根据某种方案分成几张物理块进行存储,这张逻辑上的表称之为分区表,物理块称之为分区。
分区表是一张逻辑表,不存储数据,数据实际是存储在分区上的。
课程学习
连接openGauss
#第一次进入等待15秒 #数据库启动中... su - omm gsql -r
复制
1.创建分区表
–范围分区表
create table update_table ( c1 int, c2 CHAR(2) ) partition by range (c1) ( partition update_table_p0 values less than (50), partition update_table_p1 values less than (100), partition update_table_p2 values less than (150) );
复制
–查看分区表信息
\d+ update_table; select * from pg_partition;
复制
–插入数据
insert into update_table values (1, 'a'), (50, 'b'), (100, 'c');
复制
–超出范围的数据会报错
insert into update_table values (150, 'd');
复制
–查看各区上的数据
select * from update_table partition(update_table_p0);
复制
2.创建分区
alter table update_table add partition update_table_p3 values less than (200);
insert into update_table values (150, 'd');
复制
alter table update_table add partition update_table_p3 values less than (200);
insert into update_table values (150, 'd');
3.修改分区属性
alter table update_table rename partition update_table_p1 to update_table_p1_1;
复制
alter table update_table rename partition update_table_p1 to update_table_p1_1;
4.删除分区
alter table update_table drop partition update_table_p0;
复制
alter table update_table drop partition update_table_p0;
5.删除分区表
drop table update_table;
复制
drop table update_table;
课后作业
1.创建一个含有5个分区的范围分区表store,在每个分区中插入记录
create table store
(id int,ch CHAR(20))
partition by range (id)
(partition store_p0 values less than (50),partition store_p1 values less than (100)partition store_p2 values less than (150),partition
store_p3 values less than (200),partition store_p4 values less than (250));
insert into store values
(5,'a'),(55,'b'),(105,'c'),(155,'d'),(205,'e');
insert into store values (260,'f');
2.查看分区1上的数据
select
* from store;
select
* from store partition(store_p1);
3. 重命名分区2
alter table store rename partition store_p2 to store_rep2;
4.删除分区5
alter table store drop partition store_p4;
5.增加分区6
alter table store add partition store_p5
values less than (300);
select * from pg_partition;
\d+ store;
drop table store;
复制