SQL Leçon 3
Ajouter, modifier, supprimer
Écrire dans la base : insérer de nouvelles lignes, en modifier, en supprimer, sans tout casser.
À la fin de cette leçon, tu sauras
- Ajouter une ligne avec INSERT INTO
- Modifier des lignes avec UPDATE
- Supprimer des lignes avec DELETE, en toute sécurité
INSERT : ajouter une ligne
INSERT INTO eleves (prenom, nom, age, ville)
VALUES ('Nina', 'Robert', 18, 'Chartres');On donne la liste des colonnes, puis les valeurs dans le même ordre. La colonne id n'est pas indiquée : la base lui donne automatiquement le numéro suivant (on verra comment dans la leçon sur la création des tables).
UPDATE : modifier
UPDATE eleves SET ville = 'Lucé' WHERE id = 2;
UPDATE eleves SET age = age + 1, ville = 'Paris' WHERE prenom = 'Inès';SET indique les nouvelles valeurs (on peut en changer plusieurs, séparées par des virgules), et WHERE les lignes concernées.
DELETE : supprimer
DELETE FROM eleves WHERE id = 4;Attention : sans WHERE, UPDATE modifie toutes les lignes et DELETE les supprime toutes. Il n'y a pas de bouton « annuler ». Avant un UPDATE ou un DELETE, lance d'abord un SELECT avec le même WHERE pour voir quelles lignes seront touchées.
Astuce : filtre plutôt sur l'id, qui est unique. Plusieurs élèves peuvent s'appeler Léa, mais un seul a l'id 1.
À toi de jouer
Écris deux requêtes :
- ajoute l'élève Sam Leroy, 19 ans, qui habite à
Dreux; - change la ville de l'élève dont l'
idvaut 3 enParis.
Ajoute un SELECT * FROM eleves; à la fin pour voir le résultat de tes modifications.
Écris une requête : elle s'exécute pendant que tu tapes, sur une base d'exemple qui repart de zéro à chaque fois.
Voir les tables de la base d'exemple
classes (3 lignes)
| id | nom |
|---|---|
| 1 | BTS SIO 1 |
| 2 | BTS SIO 2 |
| 3 | Terminale STMG |
eleves (7 lignes)
| id | prenom | nom | age | ville | classe_id |
|---|---|---|---|---|---|
| 1 | Léa | Martin | 18 | Chartres | 1 |
| 2 | Tom | Bernard | 19 | Dreux | 2 |
| 3 | Inès | Petit | 18 | Chartres | 1 |
| 4 | Hugo | Durand | 20 | Paris | 2 |
| 5 | Chloé | Lambert | 17 | Lucé | 3 |
| 6 | Nathan | Dubois | 19 | Chartres | 1 |
| 7 | Sarah | Moreau | 18 | Dreux | NULL |
notes (9 lignes)
| id | eleve_id | matiere | note |
|---|---|---|---|
| 1 | 1 | Développement | 16 |
| 2 | 1 | Réseau | 12 |
| 3 | 2 | Développement | 11 |
| 4 | 2 | Réseau | 15 |
| 5 | 3 | Développement | 18 |
| 6 | 4 | Réseau | 9 |
| 7 | 6 | Développement | 13 |
| 8 | 6 | Réseau | 14 |
| 9 | 5 | Gestion | 15 |
- Après tes requêtes, la table eleves contient exactement ce qu'il faut
- Un INSERT INTO eleves liste les colonnes
- Les valeurs de Sam Leroy sont dans le bon ordre
- Un UPDATE change la ville en Paris
- L'UPDATE ne touche que l'élève d'id 3
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
INSERT INTO eleves (prenom, nom, age, ville)
VALUES ('Sam', 'Leroy', 19, 'Dreux');
UPDATE eleves SET ville = 'Paris' WHERE id = 3;