Cours
Une base de données modélise des entités réelles, comme des professeurs ou des universités, en les stockant dans des tables. Chaque table contient les données d’un seul type d’entité. Cela réduit la redondance en ne stockant chaque entité qu’une seule fois. Par exemple, il ne doit y avoir qu’une seule ligne contenant les informations d’une entreprise donnée. Enfin, une base de données permet aussi de modéliser les relations entre les entités.
SQL signifie Structured Query Language. Il s’agit d’un langage informatique conçu pour stocker, manipuler et interroger des données dans une base de données relationnelle.
SQL est le langage standard des systèmes de bases de données relationnelles. Tous les Systèmes de gestion de bases de données relationnelles (SGBDR) comme MySQL, MS Access, Oracle, Sybase, Informix, Postgres et SQL Server utilisent SQL comme langage de base de données de référence.
Base de données PostgreSQL
information_schema est une méta‑base qui contient des informations sur votre base de données actuelle. Elle n’est pas propre à PostgreSQL et existe aussi dans d’autres systèmes de gestion de bases de données comme MySQL ou SQL Server. information_schema comporte plusieurs tables que vous pouvez interroger avec la syntaxe bien connue SELECT * FROM :
- tables : informations sur toutes les tables de votre base de données actuelle
- columns : informations sur toutes les colonnes de toutes les tables de votre base de données actuelle
SELECT table_schema, table_name
FROM information_schema.tables;
table_schema | table_name
-------------------+------------------------------
pg_catalog | pg_statistic
pg_catalog | pg_type
pg_catalog | pg_policy
pg_catalog | pg_authid
pg_catalog | pg_shadow
public | university_professors
pg_catalog | pg_settings
...
Commandes en SQL
Data Definition Language (DDL)
- CREATE : crée une nouvelle table ou une vue de table.
- ALTER : modifie une table existante.
- DROP : supprime une table entière ou d’autres objets de la base.
Data Manipulation Language (DML)
- SELECT : extrait certains enregistrements d’une ou plusieurs tables.
- INSERT : ajoute un enregistrement dans une table existante.
- UPDATE : modifie un enregistrement existant de la table.
- DELETE : supprime des enregistrements d’une table, voire la table entière.
Afficher les colonnes d’une table donnée
information_schema contient aussi des informations sur les colonnes dans la table « columns ». Une fois que vous connaissez le nom d’une table, vous pouvez interroger ses colonnes en consultant la table « columns ».
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'pg_config';
table_name | column_name | data_type
-----------+-------------+-----------
pg_config | name | text
pg_config | setting | text
Ici, vous voyez que la table système pg_config ne comporte que deux colonnes — vraisemblablement pour stocker des paires clé‑valeur.
Exemple interactif
Dans cet exercice, vous n’aurez besoin que des informations du schéma "public", qui apparaît dans la colonne table_schema des tables tables et columns. Le schéma "public" contient les informations relatives aux tables et bases définies par les utilisateurs. Les autres types de table_schema contiennent des informations système — ici, nous nous intéressons uniquement aux objets définis par les utilisateurs.
Vous allez récupérer les noms de toutes les tables de la base de données actuelle en limitant votre requête au table_schema "public".
## Interroger la bonne table dans information_schema
SELECT table_name
FROM information_schema.tables
## Spécifier la valeur correcte de table_schema
WHERE table_schema = 'public';
Lorsque nous exécutons le code ci‑dessus, il produit le résultat suivant :

Pour en savoir plus sur les bases de données relationnelles en SQL, regardez cette vidéo issue de notre cours Introduction to Relational Databases in SQL.
Ce contenu est extrait du cours Introduction to Relational Databases in SQL de Timo Grossenbacher, proposé par DataCamp.
Consultez aussi notre tutoriel Introduction à l’indexation en SQL.