SQL ET POSTGRE 3.14 : Langage de définition de données
Voici la solution complète du challenge LDD précédent. L'exercice consistait à créer une base conducteur_voiture contenant deux tables liées par une clé étrangère, puis à modifier la structure pour ajouter une colonne et changer le type d'une autre. On déroule chaque étape dans pgAdmin.
Étapes de résolution
On commence par créer la base via CREATE DATABASE conducteur_voiture;, puis on ouvre l'éditeur de script sur cette base. La création de la table conducteur définit cinq colonnes : id SERIAL PRIMARY KEY, nom VARCHAR(30), prenom VARCHAR(30), departement INT, et date_permis DATE. On vérifie ensuite avec un SELECT * FROM conducteur que la structure est conforme.
Vient la table voiture avec ses colonnes marque VARCHAR(30), modele VARCHAR(30), annee INT, et surtout la clé étrangère conducteur_id INT REFERENCES conducteur(id). Cette ligne crée le lien entre les deux tables : chaque voiture pointe vers un conducteur existant via son identifiant.
Pour les deux dernières missions, on utilise ALTER TABLE :
ALTER TABLE conducteur ADD COLUMN email VARCHAR(50) UNIQUE;
ALTER TABLE conducteur ALTER COLUMN nom TYPE VARCHAR(50);
La première requête ajoute une colonne email avec la contrainte UNIQUE (option logique pour une adresse mail). La seconde modifie le type de la colonne nom pour passer de 30 à 50 caractères maximum. À chaque étape on vérifie avec un SELECT que la modification a bien été prise en compte. Bravo si vous avez réussi ce challenge en autonomie ; sinon, ce corrigé pas à pas vous donne tous les patterns à mémoriser.
En résumé
Cette leçon couvre le Langage de Définition de Données (DDL) en PostgreSQL. Elle guide pas à pas la création de deux tables liées (conducteur et voiture) avec leurs colonnes, types de données et contraintes. L'instructeur montre également comment ajouter et modifier des colonnes existantes avec ALTER TABLE, puis vérifier les changements avec SELECT.
Points clés
- Création de tables avec CREATE TABLE : définition des colonnes, types (INTEGER, VARCHAR, DATE) et contraintes (PRIMARY KEY, UNIQUE)
- Gestion des clés étrangères (FOREIGN KEY) pour lier deux tables (voiture référence conducteur)
- Ajout de colonnes avec ALTER TABLE ADD COLUMN pour ajouter une colonne email avec contrainte UNIQUE
- Modification de colonnes avec ALTER TABLE ALTER COLUMN pour changer le type ou la taille d'une colonne (VARCHAR 30 vers VARCHAR 50)
- Vérification des changements avec SELECT * FROM après chaque opération DDL
Questions fréquentes
Quelle est la différence entre PRIMARY KEY et FOREIGN KEY ?
La PRIMARY KEY identifie de manière unique chaque ligne d'une table (ex. ID). La FOREIGN KEY crée une référence vers la clé primaire d'une autre table pour lier les données (ex. conducteur_ID dans voiture référence l'ID de la table conducteur).
Comment ajouter une colonne à une table existante ?
Utilisez ALTER TABLE nom_table ADD COLUMN nom_colonne type_donnees. Exemple : ALTER TABLE conducteur ADD COLUMN email VARCHAR(50) UNIQUE ajoute une colonne email avec contrainte d'unicité.
Comment modifier le type de données d'une colonne ?
Utilisez ALTER TABLE nom_table ALTER COLUMN nom_colonne TYPE nouveau_type. Exemple : ALTER TABLE conducteur ALTER COLUMN nom VARCHAR(50) change la colonne nom pour accepter jusqu'à 50 caractères au lieu de 30.