SQL ET POSTGRE 3.6 : Création de notre première table
Maintenant que vous maîtrisez les types de données, les clés primaires et étrangères ainsi que les contraintes, vous êtes prêt à construire votre première table dans PostgreSQL. L'objectif du cours est de modéliser une base de données films avec une table pour les films, une pour les acteurs, une pour les réalisateurs, et une table de jonction entre films et acteurs.
Créer la base et la première table
Dans pgAdmin, on déploie le serveur PostgreSQL, puis on fait un clic droit sur Databases et on choisit Create Database. On lui donne le nom films et on enregistre. Une fois la base créée, on clique dessus puis on ouvre Create Script pour entrer du SQL.
On commence par la table realisateur. On structure le code avec un commentaire et on tape la requête de création :
CREATE TABLE realisateur (
realisateur_id SERIAL PRIMARY KEY,
prenom VARCHAR(30),
nom VARCHAR(30) NOT NULL,
date_naissance DATE,
nationalite VARCHAR(20)
);
Plusieurs choses à noter : realisateur_id est typé SERIAL, c'est-à-dire un entier qui s'incrémente automatiquement à chaque nouvelle ligne — parfait pour une clé primaire. Les colonnes prenom et nom sont en VARCHAR(30), et nom reçoit la contrainte NOT NULL car on veut toujours connaître le nom du réalisateur. date_naissance est typée DATE, et nationalite en VARCHAR(20), ce qui devrait suffire.
On sélectionne le script et on l'exécute (triangle d'exécution). La requête revient avec succès. Pour vérifier, on lance ensuite SELECT * FROM realisateur; — la table apparaît bien, vide pour l'instant, mais avec les bonnes colonnes et les bons types. Félicitations : votre première table est créée. La suite consiste à créer les autres tables et à insérer des données.
En résumé
Ce cours montre comment créer sa première table SQL dans PostgreSQL, après avoir compris les concepts fondamentaux (clés, contraintes, types de données). On crée d'abord une base de données "film", puis la table "réalisateurs" avec ses colonnes (identifiant auto-incrémenté, prénom, nom avec contrainte NOT NULL, date de naissance, nationalité). On apprend à écrire la requête SQL CREATE TABLE, à exécuter le script et à vérifier le résultat avec un SELECT.
Points clés
- Créer une base de données PostgreSQL via l'interface graphique (clic droit > Create Database)
- Structure d'une table : colonnes avec types de données (SERIAL, VARCHAR, DATE) et contraintes (PRIMARY KEY, NOT NULL)
- Type SERIAL : auto-incrémenté parfait pour les clés primaires
- VARCHAR(n) : chaîne de caractères avec longueur maximale définie
- Exécuter et valider la requête SQL, puis vérifier avec SELECT
Questions fréquentes
Pourquoi utiliser VARCHAR plutôt que TEXT pour le prénom et le nom ?
VARCHAR(30) permet de limiter la longueur à 30 caractères maximum, ce qui optimise le stockage et prévient les saisies excessives. TEXT, sans limite, est moins maîtrisé pour des données structurées.
Qu'est-ce que le type SERIAL en PostgreSQL ?
SERIAL crée automatiquement une séquence incrémentée. À chaque nouvelle ligne insérée, le numéro d'ID s'augmente tout seul, sans intervention manuelle. Idéal pour les clés primaires.
Pourquoi ajouter la contrainte NOT NULL au nom du réalisateur ?
NOT NULL garantit que le champ ne peut jamais être vide. Cela impose à l'utilisateur de saisir un nom, respectant l'intégrité des données et évitant les enregistrements incomplets.