
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数据库中表、字段、索引等信息。这些查询适合数据库管理员和开发人员使用,帮助您更好地了解和管理数据库结构。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月28日 03时08分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2019-03-06
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2019-03-06
上周热点回顾(3.26-4.1)
2019-03-06
故障公告:IIS应用程序池停止工作造成博客站点无法访问
2019-03-06
【故障公告】极验验证码故障造成无法登录与注册
2019-03-06
上周热点回顾(6.25-7.1)
2019-03-06
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2019-03-06
工作半年的思考
2019-03-06
不可思议的纯 CSS 滚动进度条效果
2019-03-06
【CSS进阶】伪元素的妙用--单标签之美
2019-03-06
开始CN的生活
2019-03-06
惊闻NBC在奥运后放弃使用Silverlight
2019-03-06
IE下尚未实现错误的原因
2019-03-06
Kubernetes 学习系列文章
2019-03-06
创建自己的Docker基础镜像
2019-03-06
使用Jenkins来实现内部的持续集成流程(上)
2019-03-06
HTTP 协议图解
2019-03-06
Python 简明教程 --- 20,Python 类中的属性与方法
2019-03-06
Python 简明教程 --- 21,Python 继承与多态
2019-03-06
KNN 算法-理论篇-如何给电影进行分类
2019-03-06