Le succès de l'exploitation des bases de données relationnelles repose sur un langage spécifique, capable de satisfaire les besoins de différentes catégories d'utilisateurs. De l'administrateur de base de données jusqu'à l'utilisateur final en passant par l'expert en base de données et le développeur d'applications, tous utilisent le même langage pour accomplir leur tâche. Malgré la grande diversité des systèmes de gestion de base de données, de grands efforts de standardisation ont été accomplis pour la mise au point de ce langage relationnel commun, appelé SQL (Structured Query Language ou langage de requêtes structuré). Malgré quelques variantes subsistant entre différentes implémentations, notamment pour des requêtes très spécifiques, la base du langage SQL reste la même d'un SGDB à l'autre.
Usage d'un même langage de base de données à des fins diverses
Le langage SQL est un langage permettant de dialoguer avec un SGBD afin de lui transmettre des requêtes et d'en obtenir les résultats correspondants. Le langage SQL est né dans les laboratoires de recherche d'IBM, tout comme la théorie des bases de données relationnelles. Au début des années 1970, alors que les chercheurs d'IBM travaillaient sur ce qui allaient devenir les SGBD relationnels, ils créèrent un langage permettant de travailler sur ces systèmes: SQL. Les travaux d'IBM devinrent très populaires dans l'industrie à tel point que le langage SQL fut vite adopté comme un standard. Les éditeurs d'autres systèmes de gestion de base de données que celui d'IBM produisirent dès lors leurs propres versions de SQL, qui comportaient des fonctionnalités permettant de tirer le meilleur parti du SGBD sous-jacent. Comme tous les éditeurs utilisaient une forme particulière de SQL, la compatibilité entre les différents SGBD du marché était faible. Rapidement, un mouvement se créa pour réaliser, dès 1986, un standard universellement reconnu de SQL auquel tous les éditeurs purent adhérer.
Le langage SQL offre un avantage déterminant: un et un seul langage permet de mettre en oeuvre différentes action dans une base de données. Parmi ces actions, nous relèverons les opérations suivantes:
Afin de mettre en oeuvre les opérations répertoriées ci-dessus, SQL est habituellement décomposé en 5 sous-langages dont nous n'étudierons dans cette section que les deux premiers:
Le langage SQL comporte un nombre limité de commandes, appelées également clauses, spécifiquement liées à la manipulation de données. Quelques-unes de ces commandes sont des fonctions de définition de données, d'autres sont des fonctions de manipulation de données et d'autres encore des fonctions de contrôle de données. Pour être déclarée conforme au standard SQL2, une implémentation du langage doit comporter certaines fonctionnalités de base que nous étudierons dans cette section. En plus de ces commandes, un certain nombre de mots ont une signification particulière en SQL et ne peuvent par conséquent pas être utilisés pour d'autres fins:
Tableau des mots réservés par le langage SQL
Pour ce cours, les requête SQL seront introduites directement dans PhpMyAdmin, à l'aide de la console prévue à cet effet. Pour y accéder, cliquez sur l'onglet SQL, symbolisé par l'icône
. Alors, s'ouvre une page contenant une ligne de commande dans laquelle vous pourrez rentrer vos requêtes SQL pour demander au système de gestion de bases de données MySQL d'en exécuter la commande:
Requête SQL dans la console de PhpMyAdmin
Le résultat de chaque requête, obtenu en appuyant sur le bouton Exécuter, s'affiche dans une nouvelle fenêtre sous la forme d'une table contenant les enregistrements vérifiant la requête précédemment entrée:
Résultat d'une requête SQL dans PhpMyAdmin
Le but de cette section est d'examiner les principales requêtes SQL au travers de l'exemple d'une base de données Librairie dont les schémas entités-association et relationnel sont présentés ci-dessous:
Les données peuplant les différentes tables de la base de données pourront être téléchargées au cours de la section.