Dans cet article, on va plonger dans l’un des systèmes intégrés de PostgreSQL : l’information_schema.
Qu’est-ce que l’Information_Schema ?
L’information_schema est un catalogue système qui forme un ensemble standard de vues contenant des informations sur les objets de la base de données PostgreSQL. En gros, c’est une méta-base de données qui contient des informations sur ta base de données actuelle. Il est présent dans tous les moteurs de base de données SQL conformes aux standards, ce qui le rend très utile lors d’une migration.
À noter : l’information_schema est en lecture seule et ne permet ni d’insérer de nouvelles informations ni de modifier les données existantes. Commençons à explorer les différentes vues de l’information_schema qui peuvent t’être utiles au quotidien.
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'information_schema';
Ce code est compatible avec toutes les versions de PostgreSQL.
Une fois exécuté, il renvoie la liste de toutes les vues disponibles dans l’information_schema.
Pourquoi utiliser l’Information_Schema ?
L’information_schema est essentiel quand tu veux travailler plus efficacement avec les structures de ta base de données, notamment pour :
- Les tables
- Les colonnes
- Les index
- Les triggers
- Les contraintes
- Les schémas
Information_Schema.Tables
La vue information_schema.tables contient des détails sur toutes les tables de la base de données connectée.
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema NOT IN ('pg_catalog', 'information_schema');
Ce code est compatible avec toutes les versions de PostgreSQL. Le résultat sera la liste de toutes les tables de base de ta base de données.
Information_Schema.Columns
La vue information_schema.columns te permet de récupérer les détails des colonnes de ta base de données.
SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
AND table_name = 'your_table';
Ce code est compatible avec toutes les versions de PostgreSQL. Remplace ‘your_table’ par le nom de ta table pour obtenir la liste de toutes ses colonnes avec leurs types de données.
Information_Schema.Triggers
Les informations sur les triggers sont utiles pour déboguer ou comprendre les dépendances. La vue information_schema.triggers permet de récupérer les détails des triggers liés à la base de données.
SELECT event_object_table, trigger_name, action_statement, action_timing
FROM information_schema.triggers;
Ce code, compatible avec toutes les versions de PostgreSQL, renvoie le nom de la table, le nom du trigger, l’action du trigger et son moment de déclenchement.
Information_Schema.Key_Column_Usage
La vue information_schema.key_column_usage fournit des informations qui facilitent la compréhension des relations de clés étrangères dans ta base de données.
SELECT constraint_name, table_name, column_name, ordinal_position
FROM information_schema.key_column_usage
WHERE table_name = 'your_table';
Remplace ‘your_table’ par le nom de ta table et exécute ce code, compatible avec toutes les versions de PostgreSQL, pour obtenir constraint_name, table_name, column_name et ordinal_position pour chaque clé de la table indiquée.
Conclusion
Dans ce tutoriel, on a décortiqué l’information_schema de PostgreSQL. En exploitant ses vues, tu gagnes en contrôle et tu obtiens une vision plus précise de la structure et des éléments de ta base de données. Si tu passes à PostgreSQL depuis une autre base de données SQL, les vues information_schema te seront particulièrement pratiques, puisqu’elles font partie du standard SQL.
Ton aventure avec PostgreSQL ne s’arrête pas là. Reste à l’écoute pour nos prochains guides qui exploreront plus en profondeur le vaste univers de PostgreSQL, avec des sujets plus avancés, des astuces et des conseils.
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 base de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »