1.
Modifier la structure d'une table avec ALTER TABLE
La commande ALTER TABLE permet de modifier la structure d'une table existante. Voici les
opérations courantes :
a) Ajouter une colonne
Pour ajouter un champ (colonne) à une table existante :
ALTER TABLE nom_table ADD nom_colonne TYPE_DONNEES;
Exemple : Ajouter une colonne age dans la table etudiants :
ALTER TABLE etudiants ADD age INT;
b) Modifier une colonne existante
Pour changer le type de données ou les attributs d'une colonne existante :
ALTER TABLE nom_table MODIFY nom_colonne NOUVEAU_TYPE;
Exemple : Modifier le type de données de la colonne age pour qu'il accepte des valeurs NULL :
ALTER TABLE etudiants MODIFY age INT NULL;
c) Renommer une colonne
Pour renommer une colonne dans une table :
ALTER TABLE nom_table RENAME COLUMN ancien_nom TO nouveau_nom;
Exemple : Renommer la colonne prenom en first_name dans la table etudiants :
ALTER TABLE etudiants RENAME COLUMN prenom TO first_name;
d) Supprimer une colonne
Pour supprimer une colonne d'une table :
ALTER TABLE nom_table DROP COLUMN nom_colonne;
Exemple : Supprimer la colonne age dans la table etudiants :
ALTER TABLE etudiants DROP COLUMN age;
e) Ajouter une contrainte
Pour ajouter une contrainte (par exemple, NOT NULL, DEFAULT ou UNIQUE) à une colonne
existante :
ALTER TABLE nom_table MODIFY nom_colonne TYPE_DONNEES [CONTRAINTE];
Exemple : Ajouter une contrainte NOT NULL sur la colonne nom :
ALTER TABLE etudiants MODIFY nom VARCHAR(100) NOT NULL;
Exemple : Ajouter une valeur par défaut à une colonne :
ALTER TABLE etudiants ALTER age SET DEFAULT 18;
f) Renommer une table
Pour renommer la table entière :
RENAME TABLE ancien_nom TO nouveau_nom;
Exemple : Renommer la table etudiants en eleves :
RENAME TABLE etudiants TO eleves;
2. Suppression d'une table
Si vous souhaitez supprimer complètement une table (et toutes ses données) :
DROP TABLE nom_table;
Exemple : Supprimer la table cours :
DROP TABLE cours;
3. Exemple complet : Modification de la table etudiants
Imaginons que la table etudiants existe avec la structure suivante :
id nom first_name
1 Dupont Marie
2 Durand Paul
Étapes de modification :
1. Ajouter une colonne age :
ALTER TABLE etudiants ADD age INT;
2. Modifier le type de la colonne age pour accepter une valeur par défaut :
ALTER TABLE etudiants MODIFY age INT DEFAULT 18;
3. Renommer la colonne first_name en prenom :
ALTER TABLE etudiants RENAME COLUMN first_name TO prenom;
4. Supprimer la colonne age :
ALTER TABLE etudiants DROP COLUMN age;
5. Renommer la table etudiants en eleves :
RENAME TABLE etudiants TO eleves;
4. Exercices pratiques
Exercice 1 : Ajouter et modifier des colonnes
1. Ajoutez une colonne email de type VARCHAR(100) à la table etudiants.
2. Modifiez la colonne email pour la rendre obligatoire (NOT NULL).
3. Ajoutez une valeur par défaut "inconnu@[Link]" à la colonne email.
Exercice 2 : Renommer et supprimer des colonnes
1. Renommez la colonne nom en last_name dans la table etudiants.
2. Supprimez la colonne prenom de la table etudiants.
Exercice 3 : Gérer les tables
1. Créez une nouvelle table enseignants avec les colonnes :
o id (clé primaire, auto-incrémentée),
o nom (VARCHAR(100)),
o email (VARCHAR(100)).
2. Renommez la table enseignants en professeurs.
3. Supprimez complètement la table professeurs.
Solutions attendues
1. Exercice 1 :
ALTER TABLE etudiants ADD email VARCHAR(100);
ALTER TABLE etudiants MODIFY email VARCHAR(100) NOT NULL;
ALTER TABLE etudiants ALTER email SET DEFAULT 'inconnu@[Link]';
2. Exercice 2 :
ALTER TABLE etudiants RENAME COLUMN nom TO last_name;
ALTER TABLE etudiants DROP COLUMN prenom;
3. Exercice 3 :
CREATE TABLE enseignants (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100),
email VARCHAR(100)
);
RENAME TABLE enseignants TO professeurs;
DROP TABLE professeurs;
Conclusion
Avec la commande ALTER TABLE, vous pouvez facilement ajouter, modifier, renommer ou
supprimer des colonnes dans une table existante. Vous savez désormais aussi renommer et
supprimer une table.