Partie 2 · SQL de base
Modifier et supprimer une relation
DROP TABLE relation supprime la table, ses données et sa définition. Si une table a été mal définie, mieux vaut la modifier que la reconstruire : on évite de perdre les données. C'est le rôle d'ALTER TABLE, qui permet d'ajouter/supprimer un attribut, une clé primaire ou un index, d'ajouter une contrainte d'unicité, de changer une valeur par défaut, une définition ou le nom de la table.
| Besoin | Syntaxe du cours |
|---|---|
| Ajouter un attribut | ALTER TABLE Personnes ADD fax DECIMAL(10,0) ; position : FIRST ou AFTER téléphone. Le nom ne doit pas déjà exister. |
| Supprimer un attribut | ALTER TABLE Personnes DROP prénom : la colonne et ses valeurs disparaissent |
| Créer / supprimer une clé primaire | ADD PRIMARY KEY (nom, prénom) (seulement s'il n'y en a pas déjà) / DROP PRIMARY KEY (sans clé primaire, la commande est simplement ignorée) |
| Valeur par défaut | ALTER attribut SET DEFAULT valeur / DROP DEFAULT : n'affecte pas les lignes déjà insérées |
| Changer la définition | MODIFY fax VARCHAR(14) (même nom) ; CHANGE fax num_fax VARCHAR(14) (avec renommage) |
| Renommer la table | ALTER TABLE Personnes RENAME Carnet |
| Index | ADD INDEX nom_complet (nom, prénom) / DROP INDEX nom_complet |
À toi de coder
Vérifie que tu as compris
Que risque-t-on avec
ALTER TABLE Personnes DROP prénom quand UNIQUE(nom, prénom) existe ?Vérifie que tu as compris
Quelle différence entre MODIFY et CHANGE ?
Optimiser
Après la suppression de grandes parties d'une table indexée, les index des tuples supprimés sont conservés et rallongent les sélections. OPTIMIZE TABLE Personnes supprime ces index obsolètes et comble les « trous ».