Modification d'une table
La création et la suppression de tables étant acquises, parlons maintenant des requêtes permettant de modifier une table.
Plus précisément, ce chapitre portera sur la modification des colonnes d'une table (ajout d'une colonne, modification,
suppression de colonnes).
Il est possible de modifier d'autres éléments (des contraintes, ou des index par exemple), mais cela nécessite des notions que
vous ne possédez pas encore, aussi n'en parlerai-je pas ici.
Notez qu'idéalement, il faut penser à l'avance à la structure de votre base et créer toutes vos tables directement et proprement, de
manière à ne les modifier qu'exceptionnellement.
Syntaxe de la requête
Lorsque l'on modifie une table, on peut vouloir lui ajouter, retirer ou modifier quelque chose. Dans les trois cas, c'est la
commande ALTER TABLE qui sera utilisée, une variante existant pour chacune des opérations :
Code : SQL
ALTER TABLE nom_table ADD ... -- permet d'ajouter quelque chose (une
colonne par exemple)
ALTER TABLE nom_table DROP ... -- permet de retirer quelque chose
ALTER TABLE nom_table CHANGE ...
ALTER TABLE nom_table MODIFY ... -- permettent de modifier une
colonne
Créons une table pour faire joujou
Dans la seconde partie de ce tutoriel, nous devrons faire quelques modifications sur notre table Animal, mais en attendant, je
vous propose d'utiliser la table suivante, si vous avez envie de tester les différentes possibilités d'ALTER TABLE :
Code : SQL
CREATE TABLE Test_tuto (
id INT NOT NULL,
nom VARCHAR(10) NOT NULL,
PRIMARY KEY(id)
);
Ajout et suppression d'une colonne
Ajout
On utilise la syntaxe suivante :
Code : SQL
ALTER TABLE nom_table
ADD [COLUMN] nom_colonne description_colonne;
Le [COLUMN] est facultatif, donc si à la suite de ADD vous ne précisez pas ce que vous voulez ajouter, MySQL considérera qu'il
s'agit d'une colonne.
description_colonne correspond à la même chose que lorsque l'on crée une table. Il contient le type de donnée et
éventuellement NULL ou NOT NULL, etc.
Ajoutons une colonne date_insertion à notre table de test. Il s'agit d'une date, donc une colonne de type DATE convient
parfaitement. Disons que cette colonne ne peut pas être NULL (si c'est dans la table, ça a forcément été inséré). Cela nous donne
:
Code : SQL
Partie 1 : MySQL et les bases du langage SQL
43/414
www.openclassrooms.com
Précédent

- 43/413

Suivant