MySQL et MariaDB ont un SHOW TABLES
, qui génère une liste de tables et de vues dans une base de données. PostgreSQL n'a pas de SHOW TABLES
, mais il a une commande qui produit un résultat similaire.
Dans Postgres, vous pouvez utiliser le \dt
commande pour afficher une liste de tables. Ceci est une commande psql (psql est le terminal interactif pour PostgreSQL).
Exemple
Voici un exemple de liste de toutes les tables dans PostgreSQL :
\dt
Résultat :
List of relations Schema | Name | Type | Owner --------+------------------+-------+---------- public | albums | table | barney public | artists | table | barney public | customers | table | barney public | employees | table | barney public | genres | table | barney public | owners | table | postgres public | petbyid | table | postgres public | pets | table | postgres public | pets2 | table | postgres public | pets3 | table | postgres public | petstypesowners | table | postgres public | petstypesowners2 | table | postgres public | pettypecount | table | postgres public | pettypes | table | postgres public | students | table | barney public | t1 | table | barney public | teachers | table | barney (17 rows)
Dans ce cas, il affiche toutes les tables.
Nous aurions pu utiliser \d
sans le t
si nécessaire. Utilisation de \d
seul équivaut à utiliser \dtvmsE
qui affiche une liste de toutes les tables, vues, vues matérialisées, séquences et tables étrangères visibles. Le t
dans le \dt
est ce qui limite la sortie aux seules tables.
Spécifier un nom de table
Nous pouvons ajouter à la commande un modèle pour renvoyer uniquement les tables qui correspondent au modèle.
Exemple :
\dt pet*
Résultat :
List of relations Schema | Name | Type | Owner --------+------------------+-------+---------- public | petbyid | table | postgres public | pets | table | postgres public | pets2 | table | postgres public | pets3 | table | postgres public | petstypesowners | table | postgres public | petstypesowners2 | table | postgres public | pettypecount | table | postgres public | pettypes | table | postgres (8 rows)
Renvoyer plus de détails sur la table
Nous pouvons ajouter \dt
avec un +
signez pour qu'il affiche plus d'informations sur chaque table :
\dt+ pet*
Résultat :
List of relations Schema | Name | Type | Owner | Size | Description --------+------------------+-------+----------+------------+------------- public | petbyid | table | postgres | 0 bytes | public | pets | table | postgres | 8192 bytes | public | pets2 | table | postgres | 8192 bytes | public | pets3 | table | postgres | 8192 bytes | public | petstypesowners | table | postgres | 16 kB | public | petstypesowners2 | table | postgres | 16 kB | public | pettypecount | table | postgres | 8192 bytes | public | pettypes | table | postgres | 8192 bytes | (8 rows)
Cette fois, nous pouvons voir la taille de chaque tableau.