首页 文章

在PostgreSQL中显示表格

提问于
浏览
1327

什么相当于PostgreSQL中的 show tables (来自MySQL)?

19 回答

  • 23
    select * from pg_catalog.pg_tables
    where schemaname != 'information_schema' and schemaname != 'pg_catalog';
    
  • 2

    首先,您可以使用mac上的postgre.app或使用postico连接您的postgres数据库 . 运行以下命令:

    psql -h localhost -p port_number -d database_name -U user_name -W
    

    然后输入密码,这应该可以访问您的数据库

  • 5

    (完整性)

    您还可以查询(SQL标准)information schema

    SELECT
        table_schema || '.' || table_name
    FROM
        information_schema.tables
    WHERE
        table_type = 'BASE TABLE'
    AND
        table_schema NOT IN ('pg_catalog', 'information_schema');
    
  • 32

    使用-E标志运行psql将回显内部使用的查询以实现\ dt和类似:

    sudo -u postgres psql -E
    
    postgres=# \dt       
    ********* QUERY **********
    SELECT n.nspname as "Schema",
    c.relname as "Name", 
    CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
    pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
    FROM pg_catalog.pg_class c
        LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE c.relkind IN ('r','')
        AND n.nspname <> 'pg_catalog'
        AND n.nspname <> 'information_schema'
        AND n.nspname !~ '^pg_toast'
    AND pg_catalog.pg_table_is_visible(c.oid)
    ORDER BY 1,2;        
    **************************
    
  • 98

    如果您在PostgreSQL中使用pgAdmin4,则可以使用它来显示数据库中的表:

    select * from information_schema.tables where table_schema='public';
    
  • 18

    使用只看表

    => \dt
    

    如果想看模式表

    =>\dt+
    

    如果要查看特定的架构表

    =>\dt schema_name.*
    
  • 45

    以超级用户身份登录:

    sudo -u postgres psql
    

    您可以通过 \l 命令列出所有数据库和用户(按 \? 列出其他命令) .

    现在,如果要查看其他数据库,可以通过 \c template1\c postgres postgres\c 命令更改用户/数据库,并使用 \d\dt\dS 查看表/视图/等 .

  • 11

    您可以使用 \dt 列出当前数据库中的表 .

    Fwiw, \d tablename 将显示有关给定表的详细信息,例如MySQL中的 show columns from tablename ,但有更多信息 .

  • 29

    您可以使用PostgreSQL的交互式终端Psql来显示PostgreSQL中的表 .

    1. Start Psql

    通常可以运行以下命令进入psql:

    psql DBNAME USERNAME
    

    例如, psql template1 postgres

    您可能遇到的一种情况是:假设您以root身份登录,并且您不记得数据库名称 . 您可以通过运行首先输入Psql:

    sudo -u postgres psql
    

    在某些系统中,sudo命令不可用,您可以改为运行以下命令:

    psql -U postgres
    psql --username=postgres
    

    2. Show tables

    现在在Psql中你可以运行如下命令:

    • \? 列出所有命令

    • \l 列出数据库

    • \conninfo 显示有关当前连接的信息

    • \c [DBNAME] 连接到新数据库,例如 \c template1

    • \dt 列表

    • 然后您可以运行SQL语句,例如 SELECT * FROM my_table; (注意:语句必须以分号 ; 结束)

    • \q 退出psql

  • 1

    \ dt(no * required) - 将列出已连接到的现有数据库的所有表 . 还有用的注意事项:

    \ d [table_name] - 将显示给定表的所有列,包括类型信息,引用和键约束 .

  • 1930
    • 首次以postgres用户身份登录:

    sudo su - postgres

    • 连接到所需的db: psql -d databaseName

    • \dt 将返回您连接到的数据库中所有表的列表 .

  • -2

    如果您只想查看您创建的表列表,您可能只会说:

    \dt

    但我们也有 PATTERN ,它可以帮助您自定义要显示的表格 . 要显示包含 pg_catalog Schema的所有内容,您可以添加 * .

    \dt *

    如果您这样做: \?

    \ dt [S] [PATTERN]列表

  • 7

    \ dt将列出表格,“\ pset pager off”会在同一窗口中显示它们,而不会切换到单独的窗口 . 喜欢dbshell中的死亡功能 .

  • 5

    请注意, \dt 将单独列出您为我工作的数据库的 public 架构中的表 .

    要列出特定架构中的所有表,我需要:

    1)连接到所需的数据库:

    psql mydb
    

    2)在 \dt 命令之后指定我想要查看表的模式名称,如下所示:

    \dt myschema.*
    

    这向我展示了我感兴趣的结果:

    List of relations
     Schema   |       Name      | Type  |  Owner   
    ----------+-----------------+-------+----------
     myschema | users           | table | postgres
     myschema | activity        | table | postgres
     myschema | roles           | table | postgres
    
  • 14

    psql 命令行界面中,显示当前架构中的所有表:

    \dt
    

    以编程方式(或者当然也来自 psql 界面):

    SELECT * FROM pg_catalog.pg_tables;
    

    系统表位于pg_catalog数据库中 .

  • 2

    首先,你需要连接数据库

    我的数据库是 ubuntu

    使用此命令进行连接

    \c ubuntu
    

    此消息将显示

    “您现在已连接到数据库”ubuntu“作为用户”postgres“ . ”

    现在

    运行此命令以显示其中的所有表

    \d+
    
  • 13

    使用 psql :\ dt

    要么:

    SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE pg_catalog.pg_table_is_visible(c.oid)
            AND c.relkind = 'r'
            AND relname NOT LIKE 'pg_%'
    ORDER BY 1
    
  • 146

    以超级用户身份登录,以便您可以检查所有数据库及其架构: -

    sudo su - postgres
    

    然后我们可以使用以下命令到达postgresql shell: -

    psql
    

    您现在可以使用以下命令检查所有数据库列表: -

    \l
    

    如果您想检查数据库的大小,还可以使用: -

    \l+
    

    现在找到数据库后,可以使用以下命令连接到该数据库: -

    \c database_name
    

    连接后,您可以通过以下方式检查数据库表或模式: -

    \d
    

    现在返回shell使用: -

    q
    

    现在进一步查看某个表的使用细节: -

    \d table_name
    
  • 4

    首先使用以下命令连接数据库

    \c database_name
    

    您将看到此消息您现在已连接到数据库database_name,并且它们运行以下命令

    SELECT * FROM table_name;
    

    在database_name和table_name只是用您的数据库和表名更新

相关问题