🎯 Objectifs de la lecon
- •Créer une table avec CREATE TABLE
- •Définir des contraintes PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE
- •Modifier un schéma avec ALTER TABLE
Une base de données relationnelle stocke des données dans des tables. Pour garantir leur fiabilité, chaque table doit respecter des règles appelées contraintes d'intégrité. Ce cours t'explique comment créer et modifier ces tables avec SQL.
Créer une table avec CREATE TABLE
La commande CREATE TABLE permet de définir une nouvelle table. Tu dois préciser son nom et la liste de ses colonnes avec leur type de données.
Exemple : CREATE TABLE Etudiant (id INTEGER, nom TEXT, age INTEGER); crée une table avec trois colonnes.
✔️ A retenir
Chaque colonne a un nom et un type (INTEGER, TEXT, REAL, etc.). La commande se termine par un point-virgule.
Les contraintes d'intégrité
Les contraintes d'intégrité sont des règles qui limitent les valeurs possibles dans une table. Elles empêchent les données erronées ou incohérentes.
Les principales contraintes sont : PRIMARY KEY, FOREIGN KEY, NOT NULL et UNIQUE.
- PRIMARY KEY : identifie chaque ligne de façon unique.
- FOREIGN KEY : relie une colonne à la clé primaire d'une autre table.
- NOT NULL : interdit les valeurs vides (NULL).
- UNIQUE : garantit que toutes les valeurs d'une colonne sont différentes.
⚠️ Attention
Une table ne peut avoir qu'une seule PRIMARY KEY, mais plusieurs colonnes UNIQUE.
Définir PRIMARY KEY et NOT NULL
La contrainte PRIMARY KEY se place après le type de la colonne. Exemple : CREATE TABLE Etudiant (id INTEGER PRIMARY KEY, nom TEXT NOT NULL);
NOT NULL s'écrit aussi après le type. Ici, le nom ne peut pas être vide.
« CREATE TABLE Cours (code TEXT PRIMARY KEY, intitule TEXT NOT NULL); »
Point fort : La colonne code est clé primaire, donc chaque cours a un code unique. intitule ne peut pas être NULL.
Utiliser FOREIGN KEY et UNIQUE
FOREIGN KEY se déclare en fin de CREATE TABLE. Exemple : CREATE TABLE Inscription (etudiant_id INTEGER, cours_code TEXT, FOREIGN KEY (etudiant_id) REFERENCES Etudiant(id));
UNIQUE s'ajoute après le type. Exemple : CREATE TABLE Utilisateur (email TEXT UNIQUE);
⚠️ Attention
Une FOREIGN KEY doit référencer une colonne qui est PRIMARY KEY ou UNIQUE dans l'autre table.
Modifier un schéma avec ALTER TABLE
La commande ALTER TABLE permet de modifier une table existante sans la recréer. Tu peux ajouter, supprimer ou modifier une colonne.
Pour ajouter une colonne : ALTER TABLE Etudiant ADD COLUMN email TEXT;
Pour supprimer une colonne : ALTER TABLE Etudiant DROP COLUMN email; (disponible dans SQLite à partir de la version 3.35.0).
✔️ A retenir
ALTER TABLE ne modifie que la structure, pas les données existantes.
Erreurs fréquentes et mini-quiz
⚠️ Attention
Erreur fréquente : oublier le point-virgule en fin de commande. SQL ne l'exécute pas et affiche une erreur.
⚠️ Attention
Erreur fréquente : définir une FOREIGN KEY sur une colonne qui n'est pas clé primaire dans la table référencée. La commande échoue.
Mini-quiz : 1. Quelle contrainte empêche les doublons dans une colonne ? (Réponse : UNIQUE). 2. Que fait ALTER TABLE Etudiant ADD COLUMN age INTEGER; ? (Réponse : ajoute une colonne age). 3. Une table peut-elle avoir plusieurs PRIMARY KEY ? (Réponse : non).
