Partie 2 · SQL de base
INSERT, UPDATE, DELETE
Ajouter : INSERT
Il faut préciser la valeur de chaque attribut. Si certaines sont omises, ce sont les valeurs par défaut de la création qui s'appliquent ; sans défaut, MySQL met 0, une chaîne vide, une date nulle… pour une colonne NOT NULL, et NULL si elle l'autorise.
| Forme | Syntaxe |
|---|---|
| Étendue | INSERT INTO Personnes(nom, prénom) VALUES('Martin', 'Jean') |
| Standard | INSERT INTO Ballon VALUES(20, 'rouge') : plus courte, mais l'ordre et le nombre de valeurs doivent être exactement ceux de la table (('rouge', 20) ou ('rouge') seul sont faux) |
| Complète | INSERT INTO Ballon VALUES (20,'rouge'), (35,'vert fluo'), (17,'orange') : plusieurs lignes d'une même table ; pas de tables différentes |
REPLACE est un synonyme d'INSERT mais « sans doublon » : pratique pour respecter les contraintes UNIQUE / PRIMARY KEY.
À toi de coder
Vérifie que tu as compris
Ballon(taille INT NOT NULL, couleur VARCHAR(40)). Quelle insertion standard est correcte ?Modifier : UPDATE
UPDATE relation SET attribut=valeur, … [WHERE condition] [LIMIT a]
Le WHERE choisit les enregistrements à modifier ; SET dit quels attributs prennent quelles valeurs. Plusieurs attributs à la fois : SET téléphone='0156281469', fax='0156281812' WHERE id = 102. Sans WHERE : toute la table est modifiée. LIMIT a n'applique la commande qu'aux a premiers enregistrements qui satisfont la condition. Une valeur peut dépendre de l'ancienne : UPDATE Enfants SET age=age+1. (LOW_PRIORITY attend que plus personne ne lise la table.)
Supprimer : DELETE
DELETE [LOW_PRIORITY] FROM relation [WHERE condition] [LIMIT a]
La suppression est définitive. Sans WHERE, la table est vidée (le cours précise : elle est effacée puis recréée, plutôt que supprimée tuple par tuple, ce qui serait très long).
À toi de coder
Vérifie que tu as compris
UPDATE Personnes SET telephone='0156281469' sans WHERE ?