金仓分区表使用

准备列表分区

CREATE TABLE TAB_LB (

    c1 INT,

    c2 CHAR(10),

    c3 DATE

)

PARTITION BY RANGE (c3);

CREATE TABLE "TAB_LB_P1" PARTITION OF TAB_LB FOR VALUES FROM (MINVALUE) TO ('2012-3-1');

CREATE TABLE "TAB_LB_P2" PARTITION OF TAB_LB FOR VALUES FROM ('2012-3-1') TO ('2012-5-1');

CREATE TABLE "TAB_LB_P3" PARTITION OF TAB_LB FOR VALUES FROM ('2012-5-1') TO ('2012-7-1');

1、查看分区

\d+ TAB_LB

2、添加分区

CREATE TABLE TAB_LB_P4 PARTITION OF TAB_LB FOR VALUES FROM ('2012-7-1') TO ('2012-9-1');

3、删除分区

drop table TAB_LB_P4;

4、截断分区

Truncate table TAB_LB_P2;

5、重命名分区

alter table tab_lb_p3 rename TO tab_lb_p3_new;

<think>嗯,用户想了解人大数据库使用SQL查询表信息的方法。首先,我需要确认人大是基于PostgreSQL的,所以很多语法可能类似。然后,用户可能需要基本的表信息查询,比如表结构、数据量等。 首先,常见的查询包括获取所有表名,这可以通过系统表如sys_tables或information_schema.tables来实现。需要确认人大的系统表名称是否与PostgreSQL一致,或者是否有自己的命名习惯。比如,在PostgreSQL中是pg_tables,但人大可能有不同的系统表。 接下来,用户可能需要查询表的列信息,这通常通过information_schema.columns或者sys_columns来处理。需要给出对应的SQL示例,并说明各字段的含义,比如列名、数据类型、是否可为空等。 另外,用户可能想知道如何获取表的索引信息,这涉及到sys_indexes和sys_index_columns。需要解释如何关联这些表来获取索引名称、列名等信息。 还有,统计信息如行数、表大小也是常见的需求。可能需要使用ANALYZE命令来更新统计信息,然后查询pg_class或者类似的系统表。需要注意人大是否有特定的函数,比如pg_total_relation_size或者自定义的函数。 用户可能还会关心如何查看表的注释信息,这涉及到系统表sys_description,或者使用COMMENT命令添加的注释。需要提供相应的查询方法。 此外,需要提醒用户注意权限问题,不同用户可能有不同的访问权限,确保他们有权查询系统表。同时,人大可能有自己的扩展或特定语法,建议查阅官方文档获取最准确的信息。 最后,可能需要给出一个综合示例,将多个查询整合起来,方便用户全面了解表的信息。如果有特定的工具或客户端,比如KStudio,也值得提及,因为图形界面可能更方便。 总结下来,需要分步骤介绍不同的查询需求,提供对应的SQL示例,并指出注意事项和可能的差异。确保回答清晰,结构合理,帮助用户快速找到所需信息。</think>人大数据库(KingbaseES)是基于 PostgreSQL 开发的关系型数据库,其 SQL 语法与 PostgreSQL 高度兼容。以下是使用 SQL 查询表信息的常用方法: --- ### **1. 查询所有表信息** #### 方法1:通过系统表 `sys_tables` ```sql SELECT * FROM sys_tables WHERE schemaname = 'public'; -- 替换为你的模式名(默认是 public) ``` #### 方法2:通过 `information_schema.tables` ```sql SELECT table_name, table_type, table_schema FROM information_schema.tables WHERE table_schema = 'public'; -- 筛选指定模式的表 ``` --- ### **2. 查询表的列信息** #### 方法1:通过 `information_schema.columns` ```sql SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'your_table_name'; ``` #### 方法2:通过系统表 `sys_columns` ```sql SELECT a.attname AS column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type FROM sys_class c JOIN sys_attribute a ON a.attrelid = c.oid WHERE c.relname = 'your_table_name' AND a.attnum > 0 AND NOT a.attisdropped; ``` --- ### **3. 查询表索引信息** ```sql SELECT indexname, indexdef FROM sys_indexes WHERE tablename = 'your_table_name'; ``` --- ### **4. 查询表大小及统计信息** #### 查询表大小(数据+索引) ```sql SELECT pg_size_pretty(pg_total_relation_size('your_table_name')) AS total_size; ``` #### 查询表的行数 ```sql SELECT reltuples AS approximate_row_count FROM sys_class WHERE relname = 'your_table_name'; ``` --- ### **5. 查询表约束信息** ```sql SELECT constraint_name, constraint_type FROM information_schema.table_constraints WHERE table_schema = 'public' AND table_name = 'your_table_name'; ``` --- ### **6. 查询表注释** ```sql SELECT obj_description('public.your_table_name'::regclass, 'sys_class'); ``` --- ### **7. 综合查询示例(表结构+注释)** ```sql SELECT c.column_name, c.data_type, c.is_nullable, c.column_default, pg_catalog.col_description(t.oid, c.ordinal_position::int) AS column_comment FROM information_schema.columns c JOIN sys_class t ON t.relname = c.table_name WHERE c.table_schema = 'public' AND c.table_name = 'your_table_name'; ``` --- ### **注意事项** 1. **权限问题**:确保当前用户有权限查询系统表。 2. **模式(Schema)**:默认表在 `public` 模式下,若使用其他模式需替换 `table_schema`。 3. **扩展功能**:人大可能提供额外系统视图或函数,建议参考其官方文档。 如果需要更高级的功能(如分区表、存储过程等),可结合 `sys_partitions`、`sys_proc` 等系统表进一步查询。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值