postgres 查询某模式下,所有表的名称及字段信息

1.postgres 查询某模式下,所有表的名称及字段信息

 

 with res_table as (
 
 
SELECT
	"table_name",obj_description ( oid, 'pg_class' ) 
FROM
	information_schema.tables t1, pg_class t2 
WHERE
	table_schema = '模式名称' 
	AND t1."table_name" = t2.relname
   

)
 

SELECT res_table.*, a.attname as 属性名称,col_description(a.attrelid,a.attnum) as 属性编码,format_type(a.atttypid,a.atttypmod) as 数据类型 ,
case  a.attnotnull   when   't'   then   '是'    else   '否'   end   as   是否非空 
FROM pg_class as c,pg_attribute as a ,res_table
where c.relname = res_table.table_name and a.attrelid = c.oid and a.attnum>0  ORDER BY res_table.table_name

去除空格及回车

 
 with res_table as (
 

SELECT
	"table_name",replace(replace(trim(obj_description ( oid, 'pg_class' ) ) ,chr(13),''),chr(10),'')    as table_ms
FROM
	information_schema.tables t1, pg_class t2 
WHERE
	table_schema = 'gwxm_result' 
	AND t1."table_name" = t2.relname
   

)
 

SELECT res_table.*, a.attname as 属性编码,replace(replace(trim(col_description(a.attrelid,a.attnum)) ,chr(13),''),chr(10),'')


 as 属性描述,format_type(a.atttypid,a.atttypmod) as 数据类型 ,
case  a.attnotnull   when   't'   then   '是'    else   '否'   end   as   是否非空 
FROM pg_class as c,pg_attribute as a ,res_table
where c.relname = res_table.table_name and a.attrelid = c.oid and a.attnum>0   ORDER BY res_table.table_name 

 

 

 

2.查某表的字段名称、数据类型、数据长度、注释

 
SELECT
	upper(A.attname) AS NAME ,
	upper(format_type ( A.atttypid, A.atttypmod )) AS TYPE,
	(case
when atttypmod-4>0 then atttypmod-4
else 0
end) zdcd,
upper(col_description ( A.attrelid, A.attnum )) AS COMMENT
	
FROM
	pg_class AS C,
	pg_attribute AS A 
WHERE
	C.relname = 't_ztzdyj_zdyjjsgzss' 
	AND A.attrelid = C.oid 
	AND A.attnum > 0
	GROUP BY COMMENT,TYPE,NAME,zdcd
	ORDER BY COMMENT desc,type desc



 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要根据查询PostgreSQL中的字段信息,可以使用"Information_Schema"模式中的"Columns"视图。这个视图包含了所有的列信息。以下是通过查询字段信息的步骤: 1. 首先,连接到PostgreSQL数据库。 2. 使用以下SQL查询语句来从"Columns"视图中获取的列信息: ```sql SELECT column_name, data_type, character_maximum_length FROM information_schema.columns WHERE table_name = 'your_table_name'; ``` 在这个查询语句中,我们选择了"column_name"(列名)、"data_type"(数据类型)以及"character_maximum_length"(字符型列的最大长度)这三个字段。你可以按照你自己的需要添加或删除字段。 3. 将"your_table_name"替换为你要查询名。 4. 执行查询语句,就会返回该字段信息。 请注意,查询结果将包含与名匹配的所有字段信息。如果名不是唯一的,你可能需要进一步限制查询条件以确保只返回所需的。 ### 回答2: 在PostgreSQL中,可以使用以下的SQL语句来查询名对应的字段信息: ```sql SELECT column_name, data_type, character_maximum_length FROM information_schema.columns WHERE table_name = 'your_table_name'; ``` 在这个语句中,我们使用了information_schema这个系统视图来获取关于数据库对象的元数据信息。其中的columns包含了各个字段信息。我们通过WHERE子句的table_name条件来指定要查询名。 这个语句将返回与指定名对应的所有字段信息,包括字段名、数据类型和最大字符长度(如果适用)。你可以根据需要对返回结果进行自定义的处理,比如筛选字段名或执行其他相关操作。 值得注意的是,这个查询语句只是返回了字段的基本信息,如果你想要获取更详细的信息,比如字段的默认值、约束或索引信息,你可能需要使用其他的系统视图或格来进一步查询。 ### 回答3: 在PostgreSQL中,根据查询字段信息的方法是通过查询系统目录来获取相应的信息。可以通过以下步骤来实现: 1. 首先,连接到PostgreSQL数据库,可以使用命令行工具如psql或通过编程语言的相应库连接到数据库。 2. 使用以下查询语句来获取字段信息: ``` SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'your_table_name'; ``` 这个查询语句将从`information_schema.columns`系统目录中选择出指定名的`column_name`和`data_type`字段。`column_name`字段的列名,`data_type`字段示列的数据类型。 3. 将`your_table_name`替换为实际需要查询字段信息名,并执行以上查询语句。 4. 查询结果将返回包含列名和数据类型的格,可根据具体需求进行解析和使用。 请注意,使用以上方法查询字段信息可能不包含扩展的属性如约束、索引等。如果需要获取更详细的的元数据信息,可以查询其他系统目录如`pg_attribute`、`pg_constraint`等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值