Introduction
Si tu t'occupes de tâches de gestion de bases de données, comme créer des tables, visualiser des relations ou même générer des rapports, comprendre l'information_schema de PostgreSQL peut t'être très utile. Dans ce tutoriel, on explore les bases de l'information_schema de PostgreSQL avec quelques exemples de code.
Ce tutoriel est écrit principalement pour PostgreSQL, mais certains concepts peuvent s'appliquer à d'autres bases de données relationnelles SQL.
Avant de continuer ta lecture, je voulais te parler de notre gestionnaire de base de données PostgreSQL moderne et rapide, Beekeeper Studio. Il rend l’exploration des schémas super simple, et il est gratuit pour PostgreSQL, télécharge-le ici.
Qu'est-ce que l'information_schema ?
L'information_schema est une fonctionnalité essentielle des bases de données PostgreSQL qui donne accès aux métadonnées de la « base de données courante ». C'est en gros un ensemble de vues contenant des informations sur les différents objets de la « base de données courante ». Des tables aux colonnes en passant par les contraintes, l'information_schema de PostgreSQL fournit tous les détails de l'architecture d'une base de données.
SELECT *
FROM information_schema.tables;
En exécutant la commande ci-dessus dans l'éditeur SQL de Beekeeper Studio, par exemple, tu devrais obtenir la liste des tables de ta base de données courante.
Aller plus loin
Afficher les tables publiques
Pour lister toutes les tables publiques disponibles dans ta base de données courante, exécute simplement :
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
Cette commande renvoie la liste de tous les noms de tables de ta « base de données courante » dans le schéma « public ».
Résultat avec la base de données d'exemple « chinook »
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
Inspecter les colonnes
Utilise la vue information_schema.columns pour extraire des informations détaillées sur les colonnes d'une table donnée :
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
Ce code renvoie la liste de tous les noms de colonnes et de leurs types de données pour la table choisie.
Résultat avec la base de données d'exemple « chinook »
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
Afficher les contraintes
La vue information_schema.table_constraints fournit des informations sur les contraintes définies dans la table.
Tu peux utiliser la requête suivante pour récupérer les contraintes d'une table précise :
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
Cette commande affiche les noms et types des contraintes de « your_table », ce qui te donne un aperçu des règles appliquées à cette table.
Résultat avec la base de données d'exemple « chinook »
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
Conclusion
L'information_schema de PostgreSQL est un outil important pour explorer et comprendre la structure et les détails de ta base de données. La façon de l'utiliser dépend de tes besoins et de la configuration de ta base. Pense à remplacer les noms de tables et de colonnes d'exemple par ceux de ta base pour que les commandes s'exécutent correctement.
Remarque : tous les exemples de ce tutoriel conviennent surtout à PostgreSQL (versions 9.4 à 13.3) et peuvent ne pas être compatibles avec d'autres moteurs de base de données. Pense toujours à adapter tes requêtes au moteur que tu utilises. La nature binaire de l'information_schema de PostgreSQL peut rendre l'exploration de ta base de données plus simple, plus efficace et bien moins chronophage.
Beekeeper Studio est une interface PostgreSQL gratuite et open source
C’est le client PostgreSQL que je cherchais ! C’est l’interface qui fait la différence : claire, intuitive, puissante. Adieu le lourd PGAdmin. - David Cyprian
Beekeeper Studio est un client PostgreSQL rapide, intuitif et facile à utiliser. Il prend aussi en charge plein d’autres bases de données et fonctionne très bien sur Windows, Mac et Linux.
Ce que les utilisateurs de PostgreSQL disent de Beekeeper Studio
Contrairement à pgAdmin, Beekeeper est remarquablement simple à utiliser sans manquer de fonctionnalités, et le prix est juste ! La fonction de sauvegarde de base de données est particulièrement utile. Un excellent logiciel.
Outil fabuleux, l’IDE le plus pratique que j’ai trouvé jusqu’ici pour administrer des bases Postgres et MySql - ça marche, tout simplement, sans prise de tête :-)