INSERT, UPDATE, DELETE

Modifier les données d'une base : ajouter des lignes avec INSERT, les changer avec UPDATE, les retirer avec DELETE, le piège du WHERE oublié et le respect des clés étrangères.

  • 26 cartes
  • 6 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. Mises en situation
  6. Comprendre

Quelques cartes du deck

  • INSERT INTO … VALUES : de quoi s'agit-il ?

    Voir la réponse

    Instruction SQL qui ajoute à une table une ou plusieurs lignes dont on écrit soi-même les valeurs, colonne par colonne.

    Mieux vaut nommer les colonnes : INSERT INTO client (nom, ville) VALUES ('Léa', 'Lyon') reste juste si la table gagne une colonne. Plusieurs lignes s'écrivent VALUES (...), (...). Les colonnes omises prennent leur valeur par défaut, ou NULL.

  • Un développeur veut baisser de 10 % le prix des livres et lance cette instruction. Que se passe-t-il ?

    ```sql
    UPDATE produit SET prix = prix * 0.9;
    `

    • Le prix de tous les produits baisse de 10 %, toutes catégories confondues
    • Rien n'est modifié : SQL refuse un UPDATE sans clause WHERE
    • Seule la première ligne de la table est modifiée
    • Seuls les livres sont modifiés, car ce sont eux que la phrase du besoin désigne
    Voir la réponse

    Le prix de tous les produits baisse de 10 %, toutes catégories confondues

    Sans WHERE, l'instruction vise toutes les lignes, et SQL ne demande pas confirmation. Il fallait écrire WHERE categorie = 'livre'.

  • Dans un UPDATE, la clause … donne les nouvelles valeurs et la clause … choisit les lignes à modifier.

    Voir la réponse

    Dans un UPDATE, la clause SET donne les nouvelles valeurs et la clause WHERE choisit les lignes à modifier.

    Les deux ont des rôles distincts : UPDATE produit SET stock = 0 WHERE categorie = 'jouet' met le stock à 0 uniquement pour les jouets.

  • INSERT … SELECT : de quoi s'agit-il ?

    Voir la réponse

    Ajout à une table de toutes les lignes que rend une requête, en une seule instruction.

    La requête remplace la liste de valeurs : INSERT INTO archive (id, date_commande) SELECT id, date_commande FROM commande WHERE .... La table source n'est pas modifiée, les lignes sont copiées.