用到的postgresql系统表
关于postgresql系统表,可以参考PostgreSQL 8.1 中文文档-系统表。

pg_class
记录了数据库中的表,索引,序列,视图(“关系”)。
其中比较重要字段有:

relname 表,索引,视图等的名字。
relnamespace 包含这个关系的名字空间(模式)的 OID,对应pg_namespace.oid
relkind r = 普通表,i = 索引,S = 序列,v = 视图, c = 复合类型,s = 特殊,t = TOAST表
pg_namespace
记录了数据库的名字空间(模式)
其中比较重要的字段有:

nspname 名字空间的名字
nspowner 名字空间的所有者
pg_attribute
记录了数据库关于表的字段的信息。
其中比较重要的字段有:

attrelid 此列/字段所属的表,对应于pg_class.oid
attname 字段名字
atttypid 这个字段的数据类型,对应于pg_type.oid
attlen 对于定长类型,typlen是该类型内部表现形式的字节数目。 对于变长类型,typlen 是负数。 -1 表示一种"变长"类型(有长度字属性的数据), -2 表示这是一个 NULL 结尾的 C 字串。是本字段类型 pg_type.typlen 的拷贝。
attnum 字段数目。普通字段是从 1 开始计数的。系统字段, 比如 oid, 有(任意)正数。
atttypmod atttypmod 元组在创建表的时候 提供的类型相关的数据(比如,一个 varchar 字段的最大长度)。 它传递给类型相关的输入和长度转换函数当做第三个参数。 其值对那些不需要 atttypmod 的类型而言通常为 -1。
attnotnull 这代表一个非空约束。我们可以改变这个字段以打开或者关闭这个约束。
attisdropped 这个字段已经被删除了,不再有效。
注意:

如果字段类型为变长类型(如varchar),那么在atttypmod中存储的长度比实际长度多4。可见参考文档1。
如果字段类型为numeric,那么可通过atttypmod获得长度、精度等信息,具体方式可见参考文档2。
pg_type
记录了数据库有关数据类型的信息。
其中比较重要的字段有:

typname 数据类型名字
typlen 对于定长类型,typlen是该类型内部表现形式的字节数目。 对于变长类型,typlen 是负数。 -1 表示一种"变长"类型(有长度字属性的数据), -2 表示这是一个 NULL 结尾的 C 字串。
pg_description
记录了数据库中对象(表、字段等)的注释。
其中比较重要的字段有:

objoid 这条描述所描述的对象的 OID。如果这条注释是一个表或表中字段的注释,那么,该值对应于pg_class.oid
objsubid 对于一个表字段的注释,它是字段号,对应于pg_attribute.attnum。对于其它对象类型,它是零。
description 作为对该对象的描述的任意文本
查询用户表

SELECT a.oid,a.relname AS name,b.description AS commentFROM pg_class aLEFT OUTER JOIN pg_description b ON b.objsubid=0 AND a.oid = b.objoidWHERE a.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname='public') --用户表一般存储在public模式下AND a.relkind='r'ORDER BY a.relname

使用表名查询表字段的定义

       a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,b.description AS commentFROM pg_class c,pg_attribute aLEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,pg_type tWHERE c.relname = 'zc_zclx'and a.attnum > 0and a.attrelid = c.oidand a.atttypid = t.oidORDER BY a.attnum

使用表oid查询表字段的定义

       t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,b.description AS commentFROM pg_attribute a LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,pg_type tWHERE a.attnum > 0and a.attrelid = 162903and a.atttypid = t.oidORDER BY a.attnum

postgresql用sql语句查询表结构相关推荐

  1. 根据之前发的那SQL语句查询表结构的语句做了个MSSQL实体类生成器!

    昨晚花了一晚上做的,整天用.NET用网站,突然想用WINFORM做个小玩意的,竟然发现好多东西都不会了...怎么在WINFORM里面下拉控件没有DataBind方法滴....嘿嘿... 整个生成器其实 ...

  2. SQL语句查询表结构

    代码如下: SELECT表名 = Case When A.colorder=1 Then D.name Else '' End,表说明 = Case When A.colorder=1 Then is ...

  3. mysql oradba,使用SQL语句查询表及表字段类型说明

    今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...

  4. 【学习笔记】一些postgreSQL常用sql语句

    [学习笔记]一些postgreSQL常用sql语句 1.序列自增id 2.将从一个表中查出来的数据插入到另一个表中 3.sql更新替换字段中某个字 4.统计一个字段多个值的次数 5.统计某个字段重复项 ...

  5. html连接sql基本语句,PostgreSQL 常用SQL语句

    PostgreSQL 简介[1] PostgreSQL 可以说是目前功能最强大.特性最丰富和结构最复杂的开源数据库管理系统,其中有些特性甚至连商业数据库都不具备.这个起源于加州大学伯克利分校的数据库, ...

  6. SQL语句查询表的最后一条数据

    SQL语句 有时只需要取最后一条信息,避免信息过大. TOP方法1 SELECT TOP 1 * FROM table_name SELECT TOP 1 * FROM user order by i ...

  7. MySQL的SQL语句转PostgreSQL的SQL语句工具编写总结

    1.起因在学习基于vue+springboot的前后端分离项目时,因项目需求变更,需要将mysql数据库全部迁移到postgersql数据库的需求,因而编写了一个基于jave的sql语句转换工具 2. ...

  8. SQL Server—查询表结构

    在SQL Server中不同于在MySQL或者Oracle中使用desc来查询数据表的表结构,而是使用如下两条语句查询: 1.sp_help table_name 2.sp_columns table ...

  9. mysql中SQL语句查询表字段名、注释、字段类型

    查询dababase当前库下所有表名及表注释 select column_name,column_comment,data_type from information_schema.columns w ...

最新文章

  1. android 中测量高度和宽度,android获得屏幕高度和宽度(display中getSize(Point)方法使用)...
  2. 大数据量表中,增加一个NOT NULL的新列
  3. xunsearch: 开启后台服务,索引……随笔记录
  4. 神策数据加入中国大数据产业生态联盟,神策营销云及融媒解决方案获联盟认证...
  5. 聊聊高并发(二十六)解析java.util.concurrent各个组件(八) 理解CountDownLatch闭锁
  6. Java类集-SortedSet接口
  7. 爬虫python入门_如何入门Python爬虫?爬虫原理及过程详解
  8. kafka入门综合概要介绍
  9. 大数据安全分析需要关注哪些问题
  10. How to research,22页PPT
  11. html php即时通讯_PHP在线客服即时通讯源码
  12. [实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?
  13. UE4 蓝图实现AI随机移动
  14. 华为一直响应服务器异常,服务器不断异常重启
  15. Redis学习(三) - Redis客户端对比及配置(SpringBoot)
  16. 设置计算机网络密码怎么设置路由器,tplink路由器电脑怎么设置密码?
  17. sql中如何按拼音笔画排序
  18. 软件一般是用什么语言开发的
  19. js点击获取—通过JS获取图片的相对坐标位置
  20. 2022高教杯思路合集!!全国大学生数学建模竞赛

热门文章

  1. 树模型与线性模型的区别 决策树分类和逻辑回归分类的区别 【总结】
  2. 等离子电视工作原理(转)
  3. 基于eNSP中大型校园/企业网络规划与设计_ensp综合大作业(ensp综合实验)
  4. c语言--n的k次方
  5. Trunk知识思维导图
  6. cucumber java 搭建_intelj idea cucumber java搭建教程
  7. 烤仔TVの尚书房丨FOMO 情绪笼罩下的 DeFi 坐上了过山车
  8. iframe简单用法
  9. SAP中做一个配置BOM(SAP配置BOM攻略一)
  10. 机器学习--机器学习的基本方法