SQL语句--获取数据库表信息,表名、列名、描述注释等

        information_schema详解

import pandas as pd
import re
import psycopg2
from sqlalchemy import create_engine

# 连接库账户信息
gongsi_engine =  psycopg2.connect(dbname='kk_dw',user='*******',password='*****',host='***')
# 从公司数据库读取需要的数据表
table_data = pd.read_sql(r"select * from pg_tables where schemaname = 'dwd';",con=gongsi_engine)
table_data.head()
data = pd.read_sql(r"""select * 
                         from information_schema.columns 
                        where table_schema='dwd' 
                              and table_name='dwd_store_other_in_storage_orders_detail'""",con=gongsi_engine)
data[['table_name','column_name','udt_name']]

        获取描述等 

data = pd.read_sql(r"""select 
    a.attnum,
    n.nspname,
    c.relname,
    a.attname as field,
    t.typname as type,
    a.attlen as length,
    a.atttypmod as lengthvar,
    a.attnotnull as notnull,
    b.description as comment 
from
    pg_namespace n left join pg_class c
    on n.oid = c.relnamespace
    left join pg_attribute a 
    on a.attrelid = c.oid
    left join pg_description b 
    on a.attrelid = b.objoid and a.attnum = b.objsubid
    left join pg_type t 
    on a.atttypid = t.oid
where
    n.nspname = 'dwd'       --table_schema
    and c.relname = 'dwd_store_o2o_sales_detail' -- table_name
    and a.attnum > 0   
order by
    a.attnum;""",con=gongsi_engine)

         这样实现的功能,是我能批量获取数据库里面的表名与字段以及字段描述等信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值