SQL, pour « langage de requête structuré », sert à dialoguer avec les bases de données relationnelles. Il permet de définir des tables, de rechercher des informations et de contrôler certaines opérations.
Ses instructions se répartissent en grandes familles, selon qu’elles agissent sur la structure, les données, les accès ou les transactions. Savoir les distinguer aide à choisir la bonne commande et à limiter les erreurs.
À retenir : les familles d’instructions SQL
- DDL pour créer et faire évoluer les structures des tables
- DML pour insérer, modifier ou supprimer des enregistrements
- DQL pour interroger les données avec SELECT
- DCL et TCL pour gérer les permissions et les transactions
Comprendre les familles de commandes SQL
Pour distinguer les commandes SQL, imaginez une petite entreprise qui organise ses clients, ses commandes et ses produits dans des tables liées. Chaque famille intervient à un niveau différent, de la construction de cette organisation à la consultation quotidienne des informations.
DDL et DML : définir la structure et modifier les données
Le DDL, ou langage de définition des données, concerne la structure de la base. CREATE crée une table, ALTER la modifie et DROP la supprime ; cette dernière commande peut entraîner la perte de sa structure et de son contenu.
Le DML, ou langage de manipulation des données, agit sur les enregistrements. INSERT ajoute une ligne, UPDATE modifie des valeurs et DELETE retire des lignes sélectionnées, généralement à l’aide d’une condition WHERE.
Avant une modification, l’équipe vérifie la condition et teste la commande dans un environnement sûr. Sans filtre WHERE, UPDATE ou DELETE peut toucher toutes les lignes concernées de la table.
Commandes de structure et de manipulation :
- CREATE TABLE pour créer une table
- ALTER TABLE pour modifier sa définition
- INSERT INTO pour ajouter des données
- UPDATE et DELETE pour corriger ou retirer des lignes
DQL, DCL et TCL : consulter, autoriser et sécuriser
Le DQL, ou langage d’interrogation des données, regroupe notamment SELECT. Une requête peut sélectionner des colonnes, filtrer avec WHERE, regrouper avec GROUP BY ou trier avec ORDER BY.
Le DCL encadre les autorisations : GRANT accorde des droits et REVOKE les retire. Le TCL contrôle les transactions, notamment avec COMMIT pour valider les changements et ROLLBACK pour annuler une transaction non validée.
Familles et commandes courantes :
| Famille | Rôle | Exemples |
|---|---|---|
| DDL | Définir la structure | CREATE, ALTER, DROP |
| DML | Modifier les enregistrements | INSERT, UPDATE, DELETE |
| DQL | Interroger les données | SELECT |
| DCL | Gérer les autorisations | GRANT, REVOKE |
| TCL | Contrôler les transactions | COMMIT, ROLLBACK |
Tables, clés et relations dans une base SQL
Une fois les familles de commandes identifiées, leur usage dépend de la manière dont les informations sont organisées. Une base relationnelle répartit les données entre des tables et relie celles-ci au moyen de clés, ce qui facilite les recherches cohérentes.
Clés primaires et étrangères pour relier les tables
Une clé primaire identifie chaque ligne d’une table de façon unique. Dans une table Clients, un identifiant client peut remplir ce rôle, tandis que le nom seul risque de se répéter.
Une clé étrangère référence une clé d’une autre table. Ainsi, la table Commandes peut contenir l’identifiant du client concerné : la base peut alors vérifier que ce client existe et relier ses achats à son dossier.
Une conception simple pour un suivi de commandes :
- Clients : identifiant, nom et coordonnées
- Commandes : identifiant, date et identifiant du client
- Produits : identifiant, libellé et prix
- Lignes de commande : commande, produit et quantité
Jointures SQL pour réunir des informations
Les jointures combinent des lignes provenant de plusieurs tables à partir d’une relation. INNER JOIN conserve les correspondances présentes des deux côtés, tandis que LEFT JOIN garde toutes les lignes de la table placée à gauche.
Par exemple, une boutique peut associer Clients et Commandes pour afficher les achats d’une personne. Avant d’interpréter le résultat, il faut vérifier les clés de rapprochement : une relation mal définie peut produire des doublons ou masquer des lignes sans correspondance.
Comportement des jointures usuelles :
| Jointure | Résultat principal | Usage courant |
|---|---|---|
| INNER JOIN | Correspondances des deux tables | Afficher les commandes associées à un client |
| LEFT JOIN | Toutes les lignes de gauche et leurs correspondances | Inclure les clients sans commande |
| RIGHT JOIN | Toutes les lignes de droite et leurs correspondances | Conserver tous les éléments de la table droite |
| FULL JOIN | Lignes des deux tables, avec ou sans correspondance | Repérer les éléments présents d’un seul côté |
Écrire des requêtes SQL fiables et lisibles
Après la modélisation des tables, l’enjeu devient la justesse des requêtes. Une commande bien ciblée répond au besoin sans modifier inutilement les données ni ralentir les opérations.
SELECT, filtres et agrégations pour analyser
SELECT choisit les colonnes à afficher et WHERE limite les lignes selon une condition. Pour obtenir les commandes dépassant un seuil, on peut sélectionner les informations utiles puis appliquer un filtre sur le montant.
GROUP BY rassemble les lignes partageant une valeur, par exemple pour compter les commandes par client. HAVING filtre ensuite les groupes calculés, tandis que ORDER BY organise les résultats selon un ordre choisi.
Pour des requêtes de lecture plus efficaces :
- Choisir les colonnes nécessaires plutôt que tout extraire
- Filtrer les lignes avec des conditions compréhensibles
- Utiliser GROUP BY avec une fonction comme COUNT ou SUM
- Contrôler le résultat avant de l’intégrer à un rapport
Transactions et précautions avant modification
Une transaction rassemble plusieurs opérations qui doivent être traitées comme un ensemble cohérent. Dans un transfert entre comptes, par exemple, le débit et le crédit doivent réussir ensemble ; sinon, l’annulation évite un état incomplet.
COMMIT valide les opérations et ROLLBACK les annule avant validation. Les détails et la syntaxe varient selon les systèmes de gestion de bases de données ; il est donc prudent de tester les scripts et de vérifier les sauvegardes avant une intervention importante.
Avant une mise à jour sensible, l’opérateur peut d’abord exécuter un SELECT avec la même condition pour contrôler les lignes visées. Cette habitude simple réduit le risque d’une modification trop large.
Un mot qui se comprend dossier après dossier
Qu'il s'agisse de philosophie bouddhiste, de méditation, de culture tibétaine, d'industrie durable, de linguistique ou de bien-être, chaque rubrique raconte une facette différente de la même question : comment un même mot peut porter, à la fois, une pensée millénaire et un usage bien actuel. Rien n'est figé : chaque contexte nouveau peut encore faire évoluer ce sens.
Pour aller plus loin
- Comparer plusieurs sources avant de juger la portée d'une traduction ou d'une définition
- Replacer chaque terme dans son contexte culturel réel, pas seulement sa traduction littérale
- S'intéresser aux usages vivants de la langue autant qu'aux définitions figées
- Observer comment un même mot évolue d'un domaine à l'autre au fil du temps