Cours

SQL Leçon 3

Ajouter, modifier, supprimer

Écrire dans la base : insérer de nouvelles lignes, en modifier, en supprimer, sans tout casser.

20 min

À 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 :

  1. ajoute l'élève Sam Leroy, 19 ans, qui habite à Dreux ;
  2. change la ville de l'élève dont l'id vaut 3 en Paris.

Ajoute un SELECT * FROM eleves; à la fin pour voir le résultat de tes modifications.

requete.sql
Résultat

É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)

idnom
1BTS SIO 1
2BTS SIO 2
3Terminale STMG

eleves (7 lignes)

idprenomnomagevilleclasse_id
1LéaMartin18Chartres1
2TomBernard19Dreux2
3InèsPetit18Chartres1
4HugoDurand20Paris2
5ChloéLambert17Lucé3
6NathanDubois19Chartres1
7SarahMoreau18DreuxNULL

notes (9 lignes)

ideleve_idmatierenote
11Développement16
21Réseau12
32Développement11
42Réseau15
53Développement18
64Réseau9
76Développement13
86Réseau14
95Gestion15
  • 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
Bloqué ? Voir une solution
INSERT INTO eleves (prenom, nom, age, ville)
VALUES ('Sam', 'Leroy', 19, 'Dreux');

UPDATE eleves SET ville = 'Paris' WHERE id = 3;

Quiz

1Que fait DELETE FROM eleves; ?
2Quel mot introduit les nouvelles valeurs dans un UPDATE ?
3Pourquoi filtrer sur id plutôt que sur prenom ?