pg PostgreSQL 查询全部表备注以及全部字段的备注,全部索引信息,字段类型
发布日期:2021-05-07 23:51:50 浏览次数:23 分类:精选文章

本文共 2204 字,大约阅读时间需要 7 分钟。

PostgreSQL是一种强大的开源数据库管理系统,拥有丰富的功能和灵活的配置选项。以下是一些常用的查询技巧和命令,帮助您快速了解数据库表结构、字段信息、索引配置以及类型定义等内容。

1. 查询所有表名称及字段含义

以下查询可以帮助您列出所有表名及其字段信息:

SELECT relname AS 表名, CAST(obj_description(relfilenode, 'pg_class') AS VARCHAR) AS 名称, a.attname AS 字段, d.description AS 字段备注, CONCAT_WS('', t.typname, SUBSTRING(format_type(a.atttypid, a.atttypmod) FROM '\(.*\)')) AS 列类型FROM pg_class c, pg_attribute a, pg_type t, pg_description dWHERE a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND d.objoid = a.attrelid AND d.objsubid = a.attnumAND c.relname IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND position('_2' in tablename) = 0)ORDER BY c.relname, a.attnum;

2. 查询表的全部索引信息

如果您需要查看表的索引信息,可以使用以下查询:

SELECT i.indrelid AS oid, ci.relname AS 索引名称, ct.relname AS 表名称, am.amname AS 索引类型, i.indexrelid, i.indisunique, i.indisclustered, i.indisprimary, i.indkey, i.indclass, CAST(obj_description(indexrelid) AS VARCHAR) AS 索引描述, i.indnatts, pg_get_expr(indpred, indrelid, true) AS 索引约束, pa.rolname AS 所有者, ts.spcname AS 表空间, ci.reloptions AS 索引选项, i.indoption, i.indcollationFROM pg_index i, pg_class ci, pg_namespace tns, pg_namespace ins, pg_tablespace ts, pg_am am, pg_depend dep, pg_constraint con, pg_roles paWHERE tns.nspname = 'public'-- AND ct.relname = '目标表名'AND conname IS NULLORDER BY ct.relname, ins.nspname, ci.relname;

3. 查询字段类型

以下查询可以帮助您查看字段的类型定义:

SELECT opc.oid, opc.opcname, nsp.nspname, opc.opcdefaultFROM pg_opclass opc, pg_namespace nspWHERE opc.opcnamespace = nsp.oid;

4. 查看表名和备注

如果您想快速查看表名及其备注,可以使用以下查询:

SELECT relname AS 表名, CAST(obj_description(relfilenode, 'pg_class') AS VARCHAR) AS 备注FROM pg_class cWHERE relname IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND position('_2' in tablename) = 0);

5. 查看特定表名的字段信息

如果您需要查看某个特定表名的字段信息,可以使用以下查询:

SELECT a.attnum, a.attname, CONCAT_WS('', t.typname, SUBSTRING(format_type(a.atttypid, a.atttypmod) FROM '\(.*\)')) AS 类型, d.description AS 备注FROM pg_class c, pg_attribute a, pg_type t, pg_description dWHERE c.relname = '目标表名'AND a.attnum > 0AND a.attrelid = c.oidAND a.atttypid = t.oidAND d.objoid = a.attrelidAND d.objsubid = a.attnum;

通过以上查询,您可以快速获取PostgreSQL数据库中表、字段、索引等信息。这些查询适合数据库管理员和开发人员使用,帮助您更好地了解和管理数据库结构。

上一篇:PostgreSQL 分区表探索(pg_pathman)数据库优化
下一篇:MySQL大数据量分页查询方法及其优化

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月28日 03时08分13秒