Question Afficher les tables dans PostgreSQL


Quel est l'équivalent de show tables (à partir de MySQL) dans PostgreSQL?


1188
2018-04-20 19:07


origine


Réponses:


Du psql interface de ligne de commande, cela affiche toutes les tables dans le schéma actuel:

\dt

Par programme (ou du psql interface aussi, bien sûr):

SELECT * FROM pg_catalog.pg_tables;

Les tables système résident dans la base de données pg_catalog.


1739
2018-04-20 19:12



Connectez-vous en tant que super-utilisateur:

sudo -u postgres psql

Vous pouvez lister toutes les bases de données et tous les utilisateurs en \l commande, (liste d'autres commandes par \?).

Maintenant, si vous voulez voir d'autres bases de données, vous pouvez changer d'utilisateur / base de données en \c commande comme \c template1, \c postgres postgres et utilise \d, \dt ou \dS pour voir les tables / vues / etc.


130
2018-02-16 10:13



(Pour l'exhaustivité)

Vous pouvez également interroger le (SQL-standard) schéma d'information:

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

93
2018-04-21 09:55



  1. Première connexion en tant qu'utilisateur postgres:

    sudo su - postgres

  2. se connecter à la base de données requise: psql -d databaseName

  3. \dt retournerait la liste de toutes les tables de la base de données à laquelle vous êtes connecté.


38
2017-11-22 13:33



L'exécution de psql avec l'indicateur -E fera écho à la requête utilisée en interne pour l'implémentation \ dt et similaire:

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;        
**************************

30
2017-07-02 00:48



Si vous voulez seulement voir la liste des tables que vous avez créées, vous pouvez seulement dire:

\dt

Mais nous avons aussi PATTERN ce qui vous aidera à personnaliser les tables à afficher. Pour montrer tout compris pg_catalog Schéma, vous pouvez ajouter *.

\dt *

Si tu fais: \?

\ dt [S +] [PATTERN] tables de liste


22
2017-11-02 06:45



Première connexion avec la base de données en utilisant la commande suivante

\c database_name

Et vous verrez ce message Vous êtes maintenant connecté à database database_name et les exécutent la commande suivante

SELECT * FROM table_name;

Dans database_name et table_name, mettez à jour votre base de données et votre nom de table


16
2018-06-27 15:45



Vous pouvez utiliser le terminal interactif de PostgreSQL Psql pour afficher les tables dans PostgreSQL.

1. Démarrer Psql

Habituellement, vous pouvez exécuter la commande suivante pour entrer dans psql:

psql DBNAME USERNAME

Par exemple, psql template1 postgres

Une situation que vous pourriez avoir est: supposons que vous vous connectez en tant que root, et vous ne vous souvenez pas du nom de la base de données. Vous pouvez simplement entrer en premier dans Psql en exécutant:

sudo -u postgres psql

Dans certains systèmes, la commande sudo n'est pas disponible, vous pouvez à la place exécuter la commande ci-dessous:

psql -U postgres
psql --username=postgres

2. Montrer les tables

Maintenant, dans Psql, vous pouvez exécuter des commandes telles que:

  1. \? liste toutes les commandes
  2. \l bases de données
  3. \conninfo afficher des informations sur la connexion actuelle
  4. \c [DBNAME] se connecter à une nouvelle base de données, par exemple, \c template1
  5. \dt listes de tables
  6. \q quitter psql

15
2017-11-08 17:07



Si vous utilisez pgAdmin4 dans PostgreSQL, vous pouvez l'utiliser pour afficher les tables de votre base de données:

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

11
2018-06-05 02:18