如何在PG数据库中根据字段or注释查询所在的表和字段名称


前言

仅仅为了记录一下工作中的实战技能


提示:本文所述,仅限本人实际工作中遇到情况,请各位大佬手下留情,多多指点

一、如何在PG数据库中根据字段or注释查询所在的表和字段名称?

相信很多的小伙伴们跟我一样,初入职场,需要经历时间的过渡,在学校或者培训机构,基本上使用的都是mySql数据库,或者有学习大数据的同学说自己用的是Oracle数据库,这些都是我们在工作中对数据操作的工具,在工作之后,会因为不同的公司的需求不同,所以使用数据库一样,就像我之前使用的是mySQL,但现在的工作就要使用PG数据库,首先要做的就是适应语句之间的不同。因为很多时候,告诉你用哪张表里的哪个字段,都会去找,但是在整理数据的时候,可能你只有一个字段名称或者只有一个注释,这个时候就需要用到下面的语句了,仅供参考吧。

1.根据字段名称查询所在表

语句如下:

SELECT
a.attname as "字段名",
c.relname as "表名"
FROM
pg_class as c,
pg_attribute as a,
pg_type as t
WHERE
a.attname = 'XXXX'
and a.atttypid = t.oid
and a.attrelid = c.oid
and a.attnum>0;

使用的时候只需要把’XXX’改成你所要查询的字段就可以了。

2.根据字段名称查询注释

语句如下:

SELECT
a.attname as "字段名",
col_description(a.attrelid,a.attnum) as "注释",
concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '.∗.∗')) as "字段类型"
FROM
pg_class as c,
pg_attribute as a,
pg_type as t
WHERE
a.attname = 'XXXX'
and a.atttypid = t.oid
and a.attrelid = c.oid
and a.attnum>0;

同理修改’XXX’即可。


## 2.根据注释查询字段名、表名

语句如下:

SELECT
a.attname as "字段名",
col_description(a.attrelid,a.attnum) as "注释",
concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '.∗.∗')) as "字段类型"
FROM
pg_class as c,
pg_attribute as a,
pg_type as t
WHERE
col_description(a.attrelid,a.attnum) = 'XXX'
and a.atttypid = t.oid
and a.attrelid = c.oid
and a.attnum>0;

同样是修改‘XXX’。


总结

如上所示方法,本人亲测可用,效果相当可观,节省时间,提高效率,本人只是初级小白,如果各位大神有更好的方法,希望不吝赐教,在评论区多多留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值