AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 1285
Accepted
Jonas
Jonas
Asked: 2011-02-18 00:45:49 +0800 CST2011-02-18 00:45:49 +0800 CST 2011-02-18 00:45:49 +0800 CST

Como faço para listar todos os bancos de dados e tabelas usando o psql?

  • 772

Estou tentando aprender a administração do PostgreSQL e comecei a aprender a usar a psqlferramenta de linha de comando.

Quando faço login com psql --username=postgres, como listo todos os bancos de dados e tabelas?

Já tentei \de dnão dS+consta nada. Eu criei dois bancos de dados e algumas tabelas com o pgAdmin III, então eu sei que eles devem ser listados.

postgresql tools
  • 7 7 respostas
  • 2958919 Views

7 respostas

  • Voted
  1. Best Answer
    Frank Heikens
    2011-02-18T01:36:35+08:002011-02-18T01:36:35+08:00

    Observe os seguintes comandos:

    • \listou \l: lista todos os bancos de dados
    • \c <db name>: conectar a um determinado banco de dados
    • \dt: lista todas as tabelas no banco de dados atual usando seusearch_path
    • \dt *.: lista todas as tabelas no banco de dados atual, independentemente do seusearch_path

    Você nunca verá tabelas em outros bancos de dados, essas tabelas não são visíveis. Você precisa se conectar ao banco de dados correto para ver suas tabelas (e outros objetos).

    Para alternar bancos de dados:

    \connect database_nameou\c database_name

    Veja o manual sobre psql .

    • 1909
  2. RolandoMySQLDBA
    2011-02-18T10:30:24+08:002011-02-18T10:30:24+08:00

    Isso lista os bancos de dados:

    SELECT datname FROM pg_database
    WHERE datistemplate = false;
    

    Isso lista as tabelas no banco de dados atual

    SELECT table_schema,table_name
    FROM information_schema.tables
    ORDER BY table_schema,table_name;
    
    • 474
  3. Eric Leschinski
    2012-10-17T06:51:13+08:002012-10-17T06:51:13+08:00

    No Postgresql esses comandos do terminal listam os bancos de dados disponíveis

    el@defiant$ /bin/psql -h localhost --username=pgadmin --list
    

    Ou o comando afirmou de forma mais simples:

    psql -U pgadmin -l
    

    Esses comandos imprimem isso no terminal:

                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
    -----------+----------+----------+-------------+-------------+-----------------------
     kurz_prod | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     pgadmin   | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (5 rows)
    

    Esses são os bancos de dados disponíveis.

    Em PSQL estes comandos listam as tabelas disponíveis

    Você precisa especificar um banco de dados antes de poder listar as tabelas nesse banco de dados.

    el@defiant$ psql -U pgadmin -d kurz_prod
    

    Isso leva você a um terminal psql:

    kurz_prod=#
    

    Use o comando \dque significa mostrar todas as tabelas, visualizações e sequências

    kurz_prod=# \d
    

    Isso imprime:

               List of relations
    Schema |  Name   |   Type   |  Owner
    --------+---------+----------+---------
    public | mytable | table    | pgadmin
    public | testing | sequence | pgadmin
    (2 rows)
    

    Em seguida, para sair do terminal psql, digite \qe pressione enter. Ou Ctrl-Dfaz a mesma coisa. Estas são as tabelas nesse banco de dados.

    • 131
  4. Derek Arnold
    2011-02-18T07:00:52+08:002011-02-18T07:00:52+08:00

    \ltambém é uma abreviação para \list. Existem alguns comandos de barra, que você pode listar no psql usando \?.

    • 79
  5. Soni Harriz
    2014-09-16T11:42:05+08:002014-09-16T11:42:05+08:00

    Para obter mais informações sobre o banco de dados e a lista de tabelas, você pode fazer:

    \l+listar bancos de dados

                                                                        List of databases
        Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description
    ------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
     pgbench    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 29 MB   | pg_default |
     postgres   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 6073 kB | pg_default | default administrative connection database
     slonmaster | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1401 MB | movespace  |
     slonslave  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 32 MB   | pg_default |
     template0  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5785 kB | pg_default | unmodifiable empty database
                |          |          |             |             | postgres=CTc/postgres |         |            |
     template1  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5985 kB | pg_default | default template for new databases
                |          |          |             |             | postgres=CTc/postgres |         |            |
     test       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 13 MB   | pg_default |
    (7 rows)
    

    e

    \d+para listar todas as tabelas no esquema search_path atual no banco de dados atual.

    test=# \dn+ --list schemas
                              List of schemas
      Name  |  Owner   |  Access privileges   |      Description       
    --------+----------+----------------------+------------------------
     public | postgres | postgres=UC/postgres+| standard public schema
            |          | =UC/postgres         | 
    schema1 | postgres | postgres=UC/postgres+| 
            |          | =UC/postgres         | 
    (2 row)
    
    test=# set search_path to schema1, public;
    SET
    test=# \d+
                                      List of relations
         Schema  |      Name       | Type  |    Owner     |    Size    | Description
        ---------+-----------------+-------+--------------+------------+-------------
         public  | all_units       | table | postgres     | 0 bytes    |
         public  | asset           | table | postgres     | 16 kB      |
         public  | asset_attribute | table | postgres     | 8192 bytes |
         public  | food            | table | postgres     | 48 kB      |
         public  | name_log        | table | postgres     | 8192 bytes |
         public  | outable         | table | ordinaryuser | 0 bytes    |
         public  | outable2        | table | ordinaryuser | 0 bytes    |
         public  | test            | table | postgres     | 16 kB      |
         public  | usr             | table | postgres     | 5008 kB    |
         schema1 | t1              | table | postgres     | 0 bytes    |
        (10 rows)
    
    • 42
  6. Larry W
    2012-11-30T09:44:51+08:002012-11-30T09:44:51+08:00

    De pg_Admin, você pode simplesmente executar o seguinte em seu banco de dados atual e obterá todas as tabelas para o esquema especificado:

    SELECT * 
    FROM information_schema.tables 
    WHERE table_type = 'BASE TABLE' 
        AND table_schema = 'public' 
    ORDER BY table_type, table_name
    

    Isso lhe dará uma lista de todas as tabelas permanentes (geralmente as tabelas que você está procurando). Você pode obter apenas os nomes das tabelas se alterar o *curinga para apenas o table_name. O público table_schemaé o esquema padrão para a maioria dos bancos de dados, a menos que seu administrador tenha configurado um novo esquema.

    • 36
  7. John Powell
    2013-02-09T07:49:26+08:002013-02-09T07:49:26+08:00

    É possível que você tenha inserido as tabelas em um esquema que não está no seu caminho de pesquisa, ou o padrão, ou seja, público e assim as tabelas não aparecerão usando \dt. Se você usa um esquema chamado, digamos, data, você pode corrigir isso executando,

    alter database <databasename> set search_path=data, public;

    Saia e reinsira o psql e agora \dt mostrará as tabelas nos dados do esquema também.

    • 20

relate perguntas

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Ferramentas alternativas de banco de dados para administração da Web [fechadas]

  • Interface sqlplus confortável? [fechado]

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve