Prérequis
- PostgreSQL installé sur ton système.
- Un accès à l’outil en ligne de commande psql.
- Des notions de base en SQL et PostgreSQL.
Se connecter à la base de données
D’abord, tu dois te connecter à ta base de données PostgreSQL. Pour cela, lance la commande psql suivie du nom de ta base :
psql -d your_database_name
Si ton serveur PostgreSQL demande un nom d’utilisateur et un mot de passe, tu peux indiquer le nom d’utilisateur comme ceci :
psql -U your_username -d your_database_name
Une fois ton mot de passe saisi, tu devrais être connecté à ta base de données.
Utiliser la commande \dt
Le moyen le plus rapide de lister toutes les tables de ta base actuelle, c’est la commande \dt :
\dt
Résultat attendu :
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+---------
public | my_first_table | table | postgres
public | my_second_table | table | postgres
public | another_table | table | postgres
(3 rows)
Si tu veux plus d’informations sur tes tables, tu peux aussi utiliser :
\dt+
Cette commande affiche toutes les tables du schéma public. Pour lister les tables de tous les schémas, utilise :
\dt *.*
Interroger l’Information Schema
Une autre approche consiste à interroger directement la vue information_schema.tables. C’est particulièrement utile si tu veux mieux contrôler le résultat :
SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema');
Résultat attendu :
table_schema | table_name
--------------+------------------
public | my_first_table
public | my_second_table
public | another_table
(3 rows)
Cette requête liste toutes les tables de tous les schémas, sauf les schémas système.
Utiliser la vue pg_tables
Tu peux aussi lister les tables avec le catalogue système pg_tables :
SELECT schemaname, tablename
FROM pg_tables
WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';
Résultat attendu :
schemaname | tablename
------------+-----------------
public | my_first_table
public | my_second_table
public | another_table
(3 rows)
Cette méthode ressemble beaucoup à l’interrogation de information_schema.tables, mais elle s’appuie directement sur le catalogue interne de PostgreSQL.
Filtrer les tables par schéma
Pour lister les tables d’un schéma précis, tu peux modifier les requêtes précédentes pour filtrer sur la colonne table_schema ou schemaname :
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'your_schema_name' AND table_type = 'BASE TABLE';
Ou avec pg_tables :
SELECT tablename
FROM pg_tables
WHERE schemaname = 'your_schema_name';
Conclusion
Lister les tables dans PostgreSQL avec psql est simple, et plusieurs méthodes sont disponibles selon tes besoins. La commande \dt est la plus rapide, tandis qu’interroger information_schema ou pg_tables offre plus de contrôle et de flexibilité. Choisis les méthodes qui conviennent le mieux à ta façon de travailler.
D’autres articles qui pourraient te plaire :
- Comment lister les bases de données avec « psql »
- Comprendre les vues « Information_Schema » de PostgreSQL
Beekeeper Studio est une interface de base de données gratuite & open source
Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.
Ce que les utilisateurs disent de Beekeeper Studio
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données à nouveau agréable. »
« J’ai essayé beaucoup d’interfaces de bases de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »