4.3. MODIFIER UNE BASE – LANGAGE DE MANIPULATION DE DONNÉES (LMD)
71
CHECK (condition) : Cette contrainte permet d’exprimer une condition qui doit exister entre plusieurs
attributs de la ligne.
Les contraintes de tables portent sur plusieurs attributs de la table sur laquelle elles sont définies.
Il n’est pas possible de définir une contrainte d’intégrité utilisant des attributs provenant de deux ou
plusieurs tables. Ce type de contrainte sera mis en œuvre par l’intermédiaire de déclencheurs de base
de données (trigger, cf. section ??).
Complément sur les contraintes
ON DELETE CASCADE : Demande la suppression des n-uplets dépendants, dans la table en cours de
définition, quand le n-uplet contenant la clé primaire référencée est supprimé dans la table maître.
ON DELETE SET NULL : Demande la mise à NULL des attributs constituant la clé étrangère qui font réfé-
rence au n-uplet supprimé dans la table maître.
La suppression d’un n-uplet dans la table maître pourra être impossible s’il existe des n-uplets dans
d’autres tables référençant cette valeur de clé primaire et ne spécifiant pas l’une de ces deux options.
4.2.4 Supprimer une table : DROP TABLE
Supprimer une table revient à éliminer sa structure et toutes les données qu’elle contient. Les index
associés sont également supprimés.
La syntaxe est la suivante :
DROP TABLE nom_table
4.2.5 Modifier une table : ALTER TABLE
Ajout ou modification de colonnes
ALTER TABLE nom_table {ADD/MODIFY} ([nom_colonne type [contrainte], ...])
Ajout d’une contrainte de table
ALTER TABLE nom_table ADD [CONSTRAINT nom_contrainte] contrainte
La syntaxe de déclaration de contrainte est identique à celle vue lors de la création de table.
Si des données sont déjà présentes dans la table au moment où la contrainte d’intégrité est ajoutée,
toutes les lignes doivent vérifier la contrainte. Dans le cas contraire, la contrainte n’est pas posée sur la
table.
Renommer une colonne
ALTER TABLE nom_table RENAME COLUMN ancien_nom TO nouveau_nom
Renommer une table
ALTER TABLE nom_table RENAME TO nouv