Manipulation des données en SQL
Les instructions de manipulation des données (DML - Data Manipulation Language) permettent d'ajouter, modifier et supprimer des enregistrements dans une table.
Les trois instructions principales sont :
- INSERT INTO : ajouter de nouvelles lignes
- UPDATE : modifier des lignes existantes
- DELETE : supprimer des lignes
1. Insertion des enregistrements - INSERT INTO
L'instruction INSERT INTO est utilisée pour ajouter de nouvelles lignes de données à une table de la base de données.
Syntaxe
Il existe deux syntaxes pour l'instruction INSERT INTO :
Syntaxe 1 : avec spécification des colonnes
INSERT INTO nom_table (colonne1, colonne2, ..., colonneN)
VALUES (valeur1, valeur2, ..., valeurN);Cette syntaxe permet de spécifier exactement quelles colonnes recevront des valeurs.
Syntaxe 2 : sans spécification des colonnes
INSERT INTO nom_table
VALUES (valeur1, valeur2, ..., valeurN);Cette syntaxe nécessite que l'ordre des valeurs corresponde exactement à l'ordre des colonnes dans la table.
Insertion d'un seul enregistrement
Exemple n°1
Ajouter un seul employé dans la table Employes.
INSERT INTO Employes (Id, Nom, Age, Salaire)
VALUES (1, "Ismail", 25, 6000);Ou en version simplifiée (car toutes les colonnes sont fournies) :
INSERT INTO Employes VALUES (1, "Ismail", 25, 6000);+----+--------+-----+---------+ | Id | Nom | Age | Salaire | +----+--------+-----+---------+ | 1 | Ismail | 25 | 6000.00 | +----+--------+-----+---------+
Insertion de plusieurs enregistrements
Pour insérer plusieurs enregistrements à la fois, on peut utiliser une seule instruction avec plusieurs clauses VALUES.
INSERT INTO nom_table VALUES
(valeur1, valeur2, ...),
(valeur1, valeur2, ...),
...;Exemple n°2
Ajouter deux employés supplémentaires.
INSERT INTO Employes VALUES
(2, "Mohamed", 30, 8000.40),
(3, "Fatima", 29, 6000);+----+---------+-----+---------+ | Id | Nom | Age | Salaire | +----+---------+-----+---------+ | 1 | Ismail | 25 | 6000.00 | | 2 | Mohamed | 30 | 8000.40 | | 3 | Fatima | 29 | 6000.00 | +----+---------+-----+---------+
2. Modification des enregistrements - UPDATE
La requête UPDATE est utilisée pour modifier les enregistrements existants dans une table.
Vous pouvez utiliser la clause WHERE avec la requête UPDATE pour mettre à jour les lignes sélectionnées, sinon toutes les lignes seraient affectées.
Syntaxe
UPDATE nom_table
SET colonne1 = valeur1, colonne2 = valeur2, ..., colonneN = valeurN
[WHERE condition];Vous pouvez combiner plusieurs conditions avec les opérateurs AND ou OR.
Table de départ pour les exemples
+----+---------+-----+---------+
| Id | Nom | Age | Salaire |
+----+---------+-----+---------+
| 1 | Ismail | 25 | 6000.00 |
| 2 | Mohamed | 30 | 8000.40 |
| 3 | Fatima | 29 | 6000.00 |
| 4 | Dounia | 31 | 9000.00 |
| 5 | Omar | 30 | 7500.00 |
+----+---------+-----+---------+Exemple n°3
Augmenter le salaire de tous les employés de 900 DH.
UPDATE Employes
SET Salaire = Salaire + 900;+----+---------+-----+---------+ | Id | Nom | Age | Salaire | +----+---------+-----+---------+ | 1 | Ismail | 25 | 6900.00 | | 2 | Mohamed | 30 | 8900.40 | | 3 | Fatima | 29 | 6900.00 | | 4 | Dounia | 31 | 9900.00 | | 5 | Omar | 30 | 8400.00 | +----+---------+-----+---------+
Exemple n°4
Augmenter le salaire de 500 DH uniquement pour les employés âgés de 30 ans ou plus.
UPDATE Employes
SET Salaire = Salaire + 500
WHERE age >= 30;+----+---------+-----+----------+ | Id | Nom | Age | Salaire | +----+---------+-----+----------+ | 1 | Ismail | 25 | 6900.00 | | 2 | Mohamed | 30 | 9400.40 | | 3 | Fatima | 29 | 6900.00 | | 4 | Dounia | 31 | 10400.00 | | 5 | Omar | 30 | 8900.00 | +----+---------+-----+----------+
3. Suppression des enregistrements - DELETE
La requête DELETE est utilisée pour supprimer les enregistrements existants d'une table.
Vous pouvez utiliser la clause WHERE avec une requête DELETE pour supprimer les lignes sélectionnées, sinon tous les enregistrements seraient supprimés.
Syntaxe
DELETE FROM nom_table
[WHERE condition];Suppression avec condition
Exemple n°5
Supprimer l'employé dont l'Id est 4.
DELETE FROM Employes WHERE Id = 4;+----+---------+-----+---------+ | Id | Nom | Age | Salaire | +----+---------+-----+---------+ | 1 | Ismail | 25 | 6900.00 | | 2 | Mohamed | 30 | 9400.40 | | 3 | Fatima | 29 | 6900.00 | | 5 | Omar | 30 | 8900.00 | +----+---------+-----+---------+
Suppression de tous les enregistrements
Exemple n°6
Supprimer tous les enregistrements de la table Employes.
DELETE FROM Employes;+----+-----+-----+---------+ | Id | Nom | Age | Salaire | +----+-----+-----+---------+ +----+-----+-----+---------+ (0 ligne)
L'instruction DELETE FROM table sans clause WHERE supprime tous les enregistrements de la table. Cette opération est irréversible sans sauvegarde.
Récapitulatif
| Instruction | Action | Clause WHERE | Risque |
|---|---|---|---|
| INSERT INTO | Ajoute des lignes | Non applicable | Violation de contraintes (clés dupliquées) |
| UPDATE | Modifie des lignes | Optionnelle (sans WHERE, toutes les lignes) | Modification de toutes les lignes par accident |
| DELETE | Supprime des lignes | Optionnelle (sans WHERE, toutes les lignes) | Perte de données si WHERE oublié |
Manipulation des données
En utilisant la table Employes, écrivez les requêtes SQL pour :
- Insérer un nouvel employé avec Id=6, Nom="Sara", Age=28, Salaire=8500.
- Augmenter le salaire de tous les employés de 10%.
- Supprimer les employés âgés de moins de 25 ans (s'il y en a).
- Modifier le nom de l'employé avec Id=3 pour qu'il devienne "Fatima-Zahra".
- Insertion de Sara :
INSERT INTO Employes VALUES (6, "Sara", 28, 8500); - Augmentation de 10% :
UPDATE Employes SET Salaire = Salaire * 1.10; - Suppression des moins de 25 ans :
DELETE FROM Employes WHERE Age < 25;Dans notre table, aucun employé n'a moins de 25 ans (Ismail a 25 ans, pas moins).
- Modification du nom de l'employé Id=3 :
UPDATE Employes SET Nom = "Fatima-Zahra" WHERE Id = 3;
- INSERT INTO ajoute des enregistrements.
- UPDATE modifie des enregistrements existants.
- DELETE supprime des enregistrements.
- Toujours utiliser WHERE avec UPDATE et DELETE sauf si on veut vraiment agir sur toutes les lignes.
- Les valeurs insérées doivent respecter les types de données et les contraintes (clé primaire, NOT NULL, etc.).
- On peut insérer plusieurs lignes en une seule instruction INSERT.
- Les opérations DML (INSERT, UPDATE, DELETE) peuvent être validées (COMMIT) ou annulées (ROLLBACK) selon le contexte transactionnel.
- Faire très attention avec DELETE sans WHERE : cela vide la table !
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.