Langage de Manipulation de Données (LMD)
Guide de Référence Complet - SQL
1. INTRODUCTION AU LMD 4. UPDATE - Modification
Qu'est-ce que le LMD ? Syntaxe de Base
Partie du SQL dédiée à la manipulation des données dans les bases de
UPDATE nom_table
données.
SET colonne1 = valeur1, colonne2 = valeur2
DML : Data Manipulation Language WHERE condition;
Objectifs Principaux
Exemples
📥 INSERT - Insérer des données
📖 SELECT - Lire des données
-- Mettre à jour un seul enregistrement
✏️ UPDATE - Modifier des données UPDATE clients
🗑️ DELETE - Supprimer des données SET telephone = '0987654321'
WHERE id = 123;
💡 Note : Le LMD opère sur les données, contrairement au LDD
-- Mettre à jour plusieurs colonnes
qui opère sur la structure.
UPDATE produits
SET
prix = prix * 1.10,
2. SELECT - Lecture date_maj = CURRENT_DATE
WHERE categorie = 'Électronique';
Syntaxe de Base
SELECT colonne1, colonne2, ... ⚠️ Attention : Sans clause WHERE, UPDATE modifie TOUTES les
FROM nom_table lignes de la table !
WHERE condition;
Sélection Complète 5. DELETE - Suppression
-- Toutes les colonnes Syntaxe de Base
SELECT * FROM clients;
DELETE FROM nom_table
-- Colonnes spécifiques WHERE condition;
SELECT nom, email, telephone
FROM clients;
Exemples
DISTINCT - Valeurs Uniques -- Supprimer un enregistrement spécifique
DELETE FROM clients
SELECT DISTINCT ville WHERE id = 456;
FROM clients;
-- Supprimer avec condition complexe
DELETE FROM commandes
Alias de Colonnes WHERE statut = 'annulée'
AND date_creation < DATE_SUB(CURRENT_DATE, INTERVAL
SELECT 1 YEAR);
nom AS "Nom Client",
email AS "Adresse Email"
FROM clients;
🚨 Danger : Sans clause WHERE, DELETE supprime TOUTES les
lignes de la table !
💡 Alternative : Utilisez TRUNCATE TABLE pour vider
complètement une table (plus rapide).
3. INSERT - Insertion 6. CLAUSES AVANCÉES
Insertion Simple WHERE
Filtre les lignes selon une condition
INSERT INTO clients (nom, email, telephone)
VALUES ('Jean Dupont', 'jean@[Link]', ORDER BY
'0123456789'); Trie les résultats (ASC/DESC)
GROUP BY
Insertion Multiple
Groupe les lignes pour les agrégations
INSERT INTO clients (nom, email, telephone) HAVING
VALUES Filtre les groupes (après GROUP BY)
('Marie Martin', 'marie@[Link]', '0123456790'),
('Pierre Durand', 'pierre@[Link]', '0123456791'), LIMIT
('Sophie Lambert', 'sophie@[Link]', Limite le nombre de résultats
'0123456792');
JOIN
Combine les données de plusieurs tables
Insertion depuis une Requête
Exemple Complet
INSERT INTO clients_archive (nom, email)
SELECT nom, email
SELECT
FROM clients
[Link],
WHERE date_creation < '2023-01-01';
COUNT([Link]) AS "Nombre de commandes",
SUM([Link]) AS "Total dépensé"
FROM clients c
INNER JOIN commandes cmd ON [Link] = cmd.client_id
WHERE cmd.date_creation >= '2024-01-01'
GROUP BY [Link], [Link]
HAVING SUM([Link]) > 1000
ORDER BY "Total dépensé" DESC
LIMIT 10;
7. RÉCAPITULATIF
Commande Action Usage Principal
SELECT Lecture Consultation des données
INSERT Insertion Ajout de nouveaux enregistrements
UPDATE Modification Mise à jour des données existantes
DELETE Suppression Suppression d'enregistrements