南大通用GBase 8c 数据库分区表详解(三)

B站影视 韩国电影 2025-09-01 22:15 1

摘要:INSERT INTO record_list (number, name, class, classno, grade) VALUES

本文将继续针对南大通用GBase 8c数据库四种分区类型分别阐述其功能、效果及常用使用场景。

2. 列表分区表

适用场景

列表分区非常适合以下场景:

数据具有明确的类别属性,如地区、部门、状态等需要按离散值快速查询和管理的场景数据分布不均匀但需要按特定值组织的场景

语法格式

CREATE TABLE

partition_table_name

( [column_name data_type ]

[, ... ]

)

PARTITION BY LIST (partition_key)

(

PARTITION partition_name VALUES (list_values_clause)

[, ... ]

);

SQL示例

LIST 分区表不支持合并分区

drop table if exists record_list; create table record_list

(

number integer,

name varchar(20),

class varchar(20),

classno varchar(1),

grade integer

)

partition by list(classno)

(

partition class_01 values ('1'),

partition class_02 values ('2'),

partition class_03 values ('3'),

partition class_04 values ('4')

);

INSERT INTO record_list (number, name, class, classno, grade) VALUES

(1, 'Alice', 'Class A', 1, 55),

(2, 'Bob', 'Class B', 2, 35),

(3, 'Charlie', 'Class D', 4, 75),

(4, 'David', 'Class A', 1, 45),

(5, 'Eve', 'Class B', 2, 65),

(6, 'Frank', 'Class C', 3, 85),

(7, 'Grace', 'Class A', 1, 70),

(8, 'Hannah', 'Class D', 4, 80),

(9, 'Ivy', 'Class C', 3, 95),

(10, 'Jack', 'Class D', 4, 50),

(11, 'Kate', 'Class B', 2, 60),

(12, 'Leo', 'Class C', 3, 20),

(13, 'Mike', 'Class D', 4, 72),

(14, 'Nancy', 'Class B', 2, 82),

(15, 'Olivia', 'Class C', 3, 92),

(16, 'Peter', 'Class A', 1, 62),

(17, 'Queen', 'Class D', 4, 5),

(18, 'Ryan', 'Class C', 3, 100),

(19, 'Sara', 'Class A', 1, 79),

(20, 'Tom', 'Class B', 2, 89);

-- 查询数据

SELECT * FROM record_list ;

-- 查询分区为 指定的值所在的分区

SELECT * FROM record_list PARTITION FOR (3);

-- 查询分区为 class_01 的数据

SELECT * FROM record_list PARTITION (class_01);

-- 删除分区

alter table record_list drop partition class_02;

-- 新增分区

alter table record_list add partition class_05 values ('5');

-- 重命名分区:将 class_05 改成 class_06

ALTER TABLE record_list rename PARTITION class_05 to class_06;

-- 查看分区表信息

SELECT relname, boundaries::varchar FROM pg_partition p where p.parentid='record_list'::regclass order by 1;

来源:GBASE南大通用

相关推荐