Qu’est-ce que SQL ?
|
SQL par phatplus à partir de flaticon.com |
Dans le résumé :
|
Définition de SQL
Oublions les détours : SQL, c’est le langage de requête structuré. En anglais, Structured Query Language. Voilà pour la traduction : mais qu’est-ce que cela recouvre, concrètement ?
Pour saisir l’enjeu, inutile de perdre de temps sur des définitions abstraites. Mieux vaut voir ce qu’il permet de faire.
Petit rappel sur les bases de données
Si vous avez déjà parcouru qu’est-ce qu’une base de données ? ou comment une base de données fonctionne sur ce site, vous savez qu’un système de gestion de base de données (SGBD) est la méthode la plus fiable pour stocker des informations. Les données y sont rangées de façon organisée, et le moteur du SGBD gère à la fois leur enregistrement et leur restitution. Autrement dit, c’est ce moteur qui orchestre lecture et écriture, pour un accès fluide et contrôlé.
Le grand intérêt d’une base de données, c’est d’offrir un point d’entrée unique : tous les logiciels y accèdent de la même manière, directement via le SGBD. Rien n’est laissé au hasard, comme le montre ce schéma :
Schéma avec une base de données
Mais quel est le rôle de SQL là-dedans ? Pour que les logiciels et le moteur de base de données puissent communiquer, il leur faut un langage commun : c’est là que SQL intervient.
Ce langage universel permet :
- De consulter les données
- D’ajouter de nouvelles informations
- De modifier les enregistrements existants
- De supprimer ce qui n’a plus lieu d’être
- De faire évoluer la structure même de la base :
- Créer de nouvelles tables
- Modifier des tables existantes
- Supprimer ce qui doit l’être
- Gérer les utilisateurs et leurs droits
- Créer ou modifier des bases entières, selon les besoins
On le voit, SQL n’est pas un simple outil de consultation. Il offre un contrôle presque total sur le stockage et la gestion des données. Sa syntaxe stricte et normalisée évite toute approximation.
Les avantages de SQL
Parmi ses points forts, la portabilité occupe une place de choix. N’importe quel logiciel qui parle SQL peut dialoguer avec des bases de données variées, du moment que la connexion est bien paramétrée. Besoin de changer d’outil côté base ? On adapte la liaison, et le reste suit.
Petit message à ceux qui envisagent une carrière informatique : maîtriser SQL, c’est détenir une compétence recherchée. Le langage est partout, et sa connaissance peut ouvrir de nombreuses portes. Il existe d’ailleurs des formations et des spécialisations dédiées, preuve que le sujet ne se limite pas à quelques requêtes écrites à la va-vite.
- Sa polyvalence en fait un atout sur le marché du travail
- Ce langage offre des possibilités d’expertise, jusqu’à intégrer une équipe de développement en tant que spécialiste SQL à part entière
Les limites à connaître
Évidemment, tout n’est pas sans effort. Il faut s’approprier la logique et la syntaxe de SQL, ce qui représente un apprentissage supplémentaire. Et dans la pratique, certains éditeurs de logiciels adaptent la norme SQL à leur sauce, ajoutant des fonctionnalités maison ou restreignant certains usages, ce qui peut compliquer la compatibilité entre différentes solutions. La promesse de portabilité n’est donc pas toujours tenue à 100 % selon les environnements.
Les instructions SQL fondamentales : SELECT
L’instruction SELECT, c’est le couteau suisse de SQL : elle sert à interroger la base pour obtenir les données souhaitées selon des critères précis.
Avec SELECT, il devient possible de :
- Choisir les champs à afficher
- Déterminer les tables sources des informations
- Trier les résultats dans un ordre précis
- Regrouper des valeurs selon des critères définis
- Calculer des totaux, affiner les résultats…
- Et bien plus selon la complexité recherchée
On s’en doute : SELECT est l’instruction la plus utilisée au quotidien.
Synthèse de la syntaxe SELECT
Voici le schéma général d’une requête SELECT, avec ses principales options (les éléments en italique sont facultatifs) :
| SELECT champ1 | Liste les champs à afficher (le * sélectionne tous les champs) |
| FROM table1 | Indique la ou les tables sources |
| WHERE condition | Sélectionne les enregistrements qui remplissent les conditions données |
| GROUP BY champ/expression | Regroupe les résultats selon un champ ou une expression (utile pour les agrégats) |
| ORDER BY champ/expression | Ordonne les résultats selon le critère choisi |
| LIMIT x | Restreint la sortie au nombre de lignes indiqué |
Exemples concrets
Quelques requêtes SELECT parlantes (avec les mots-clés du langage SQL en gras pour faciliter la lecture) :
| SELECT Nom, Prénom FROM TB_Salaires | Affiche les champs Nom et Prénom pour chaque ligne de la table TB_Salaires |
| SELECT * FROM TB_Salaires | Affiche tous les champs pour chaque personne listée dans TB_Salaires |
| SELECT * FROM TB_Salaires ORDER BY DateNaissance | Idem, mais les résultats sont triés par date de naissance |
| SELECT * FROM TB_Salaires WHERE DateSortie IS NULL ORDER BY DateNaissance | Ne retient que les employés encore en poste (date de sortie vide), triés par date de naissance |
| SELECT * FROM Salaires s, Bulletins bs WHERE s.DateSortie IS NULL AND bs.SalaireNet > 10000 AND s.id_salarie = bs.id_salarie ORDER BY DateNaissance |
Ici, la requête porte sur deux tables : c’est ce qu’on appelle une jointure. On relie les résultats en précisant que les identifiants doivent correspondre : s.id_salarie = bs.id_salarie. Pour simplifier l’écriture, on utilise des alias (s, bs) : cela rend les requêtes plus courtes et plus lisibles, surtout si plusieurs tables sont en jeu. |
| On pourrait multiplier les variantes : les possibilités offertes par SELECT sont vastes. |
Les instructions INSERT, UPDATE et DELETE
Pour aller plus loin que la simple consultation, SQL permet aussi d’ajouter, de modifier ou de supprimer des données via des commandes précises.
| INSERT INTO TB_Salaires (nom, prénom) VALUES (‘ARMSTRONG’, ‘Louis’) | Ajoute Louis ARMSTRONG à la table TB_Salaires, en précisant les champs concernés |
| INSERT INTO TB_Salaires VALUES (‘ARMSTRONG’, ‘Neil’, ‘1930/08/05’) | Ajoute Neil ARMSTRONG avec sa date de naissance ; ici, l’ordre des champs doit correspondre à la structure de la table |
| UPDATE TB_Salaires SET DateNaissance = ’04/08/1901′ WHERE nom = ‘ARMSTRONG’ AND prénom = ‘Louis’ | Corrige la date de naissance de Louis Armstrong, selon les critères indiqués |
| DELETE FROM TB_Salaires | Attention : cette commande supprime tous les enregistrements de la table TB_Salaires ! |
| DELETE FROM TB_Salaires WHERE nom = ‘ARMSTRONG’ AND prénom = ‘Louis’ | Mieux vaut cibler précisément la suppression d’un seul employé, via les critères adaptés |
| Le principe est clair : chaque action s’applique selon les conditions définies. De nombreuses autres variantes existent, selon les objectifs recherchés. |
Deux instructions clés : COMMIT et ROLLBACK
Après avoir modifié la base, deux commandes permettent de valider ou d’annuler les changements :
COMMIT : confirme et rend définitives toutes les opérations en attente (ajouts, suppressions, modifications). Rien n’est gravé tant que ce n’est pas validé.
ROLLBACK : annule tout ce qui n’a pas encore été validé par un COMMIT. Si une action a été lancée par erreur, un ROLLBACK permet de retrouver la situation initiale, comme si rien ne s’était passé.
Précision : toutes les bases de données n’acceptent pas forcément ces instructions, notamment les solutions les plus légères. En revanche, sur les systèmes professionnels, elles sont systématiquement disponibles.
Autres commandes : CREATE TABLE, ALTER TABLE, DROP TABLE
SQL ne s’arrête pas à la manipulation des données. Il permet aussi de créer, adapter ou supprimer des tables. Les exemples détaillés de CREATE TABLE et ALTER TABLE seront abordés dans la suite de l’article pour aller plus loin.
Des exemples de requêtes SQL viendront illustrer tout cela. Rien de tel que des cas réels pour saisir les subtilités du langage.
La deuxième partie, axée sur des exemples pratiques, arrive prochainement. Pour la suite, il faudra patienter un peu…
Vos retours sont précieux : n’hésitez pas à commenter ou à vous abonner à la newsletter pour être averti des nouveaux contenus (l’inscription se trouve à droite de l’écran).
Cliquez ici pour parcourir tous les articles classés par thématique. |



