zoukankan      html  css  js  c++  java
  • PostgreSQL

    前言

    PostgreSQL的表一般都是建立在public这个schema下的,假如现在有个数据表t_student,可以用以下几种方式来查询表结构和索引信息。

    使用d元命令查看表字段信息和索引信息

    在cmd界面使用psql连接db后,输入d加上表名即可:

    d t_student

    通过系统数据字典查询表结构

    select
    col.table_schema,
    col.table_name,
    col.ordinal_position,
    col.column_name,
    col.data_type,
    col.character_maximum_length,
    col.numeric_precision,
    col.numeric_scale,
    col.is_nullable,
    col.column_default,
    des.description
    from
    information_schema.columns col left join pg_description des on
    col.table_name::regclass = des.objoid
    and col.ordinal_position = des.objsubid
    where
    table_schema = 'public'
    and table_name = 't_student'
    order by
    ordinal_position;

    或者简单点:

    select * from information_schema.columns
    where table_schema='public' and table_name='t_student';

    通过系统数据字典查询索引信息

    select
    A.SCHEMANAME,
    A.TABLENAME,
    A.INDEXNAME,
    A.TABLESPACE,
    A.INDEXDEF,
    B.AMNAME,
    C.INDEXRELID,
    C.INDNATTS,
    C.INDISUNIQUE,
    C.INDISPRIMARY,
    C.INDISCLUSTERED,
    D.DESCRIPTION
    from
    PG_AM B left join PG_CLASS F on
    B.OID = F.RELAM left join PG_STAT_ALL_INDEXES E on
    F.OID = E.INDEXRELID left join PG_INDEX C on
    E.INDEXRELID = C.INDEXRELID left outer join PG_DESCRIPTION D on
    C.INDEXRELID = D.OBJOID,
    PG_INDEXES A
    where
    A.SCHEMANAME = E.SCHEMANAME
    and A.TABLENAME = E.RELNAME
    and A.INDEXNAME = E.INDEXRELNAME
    and E.SCHEMANAME = 'public'
    and E.RELNAME = 't_student';

    查询所有的表名

    select
    n.nspname,
    relname
    from
    pg_class c,
    pg_namespace n
    where
    c.relnamespace = n.oid
    and nspname = 'public'
    and relkind = 'r'
    order by
    relname;

    可视化工具DBeaver

    对于上述的sql语句只需要修改要查询的table name,可以根据需要自行修改想要查询的column。如果是通过DBeaver来连接数据库,还可以直接在当前的数据库实例下打开schema里的public选项,接着选中table,选中你想查看的表,可以很直观地看到该表的各种信息:column、index等等。

  • 相关阅读:
    Vue 中的无状态组件
    如何在 Vue 中使用 JSX 以及使用它的原因
    webpack打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)
    watch监听对象
    微信小程序动态设置图片大小
    Flutter的生命周期和路由
    两个字符串的编辑距离学习[转载]
    系统进化树怎么看[转载]
    感知机PLA算法实现[转载]
    余弦相似度计算[转载]
  • 原文地址:https://www.cnblogs.com/Jeremy2001/p/11187983.html
Copyright © 2011-2022 走看看