6
Chapitre 6 sur 21

Créer une table

Construisez votre première "pièce" dans la base de données : apprenez la commande CREATE TABLE, les types de données et les contraintes essentielles.

Votre première table SQL

Maintenant que vous avez une base de données vide, il est temps d'y construire votre première "pièce" : une table ! C'est dans les tables que vos données vont vivre. Aujourd'hui, vous allez apprendre la commande CREATE TABLE.

📋

Analogie du jour : Dessiner un formulaire

Créer une table, c'est comme dessiner un formulaire vierge. Vous décidez quelles informations vous voulez collecter (colonnes) et comment elles doivent être remplies (types de données). Une fois le formulaire dessiné (table créée), vous pouvez commencer à le remplir avec des données.

📖

Définition : CREATE TABLE

CREATE TABLE est la commande SQL qui crée une nouvelle table dans votre base de données. Vous devez spécifier le nom de la table, les noms des colonnes, leurs types de données, et éventuellement des contraintes.

Création d'une table "clients"

Examinons chaque partie d'une commande CREATE TABLE avec un exemple concret :

CREATE TABLE clients (
    id INTEGER PRIMARY KEY,
    nom TEXT,
    prenom TEXT,
    email TEXT,
    ville TEXT,
    date_inscription DATE
);
📛

Nom de la table
Fondamental

clients - Le nom que vous donnez à votre table.

Convention : pluriel, descriptif, minuscules avec underscores.

Exemples : clients, commandes, produits

🔤

Nom des colonnes
Fondamental

titre, auteur, etc. - Les "catégories" de données.

Chaque colonne a un nom unique dans la table.

Convention : minuscules, descriptif, pas d'accents ni d'espaces.

🔢

Types de données
Fondamental

TEXT, INTEGER, etc. - Le type de valeur que la colonne peut contenir.

Exemples :

  • TEXT : Pour le texte (noms, descriptions)
  • INTEGER : Pour les nombres entiers
  • BOOLEAN : Pour vrai/faux
⚙️

Contraintes
Fondamental

PRIMARY KEY, NOT NULL, etc. - Règles supplémentaires.

Exemples :

  • PRIMARY KEY : Identifiant unique
  • NOT NULL : La valeur ne peut pas être vide
  • DEFAULT : Valeur par défaut si non spécifiée

Guide pas à pas : Créer votre première table

1

Ouvrir votre base de données

Dans DB Browser, ouvrez la base que vous avez créée au chapitre précédent (par exemple bibliotheque.db).

Cliquez sur l'onglet "Exécuter le SQL" en haut.

2

Écrire la commande CREATE TABLE

Dans la zone de texte, copiez-collez :

CREATE TABLE livres (
    id INTEGER PRIMARY KEY,
    titre TEXT NOT NULL,
    auteur TEXT,
    annee INTEGER,
    pages INTEGER,
    disponible BOOLEAN DEFAULT TRUE
);
3

Exécuter la commande

Cliquez sur le bouton "Exécuter" (la flèche bleue).

Vous devriez voir un message de confirmation en bas.

4

Vérifier que la table a été créée

Allez dans l'onglet "Structure de la base de données".

Vous devriez voir votre nouvelle table "livres" dans la liste !

SUCCÈS !

Vous venez de créer votre première table SQL ! Félicitations !

Exemples de tables pour différents projets

📝

Pour un blog

CREATE TABLE articles (
    id INTEGER PRIMARY KEY,
    titre TEXT NOT NULL,
    contenu TEXT,
    auteur TEXT,
    date_publication DATE,
    publie BOOLEAN DEFAULT FALSE
);
🍽️

Pour un restaurant

CREATE TABLE plats (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL,
    description TEXT,
    prix REAL NOT NULL,
    categorie TEXT,
    vegetarien BOOLEAN DEFAULT FALSE
);
🎓

Pour une école

CREATE TABLE etudiants (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL,
    prenom TEXT NOT NULL,
    date_naissance DATE,
    email TEXT UNIQUE,
    promotion INTEGER
);

Les contraintes les plus importantes

🔑

PRIMARY KEY (Clé primaire)

Fonction : Identifie chaque ligne de manière unique.

id INTEGER PRIMARY KEY

Caractéristiques : Unique, non nulle, une seule par table.

🚫

NOT NULL (Non nul)

Fonction : La colonne doit toujours avoir une valeur.

nom TEXT NOT NULL

Utilisation : Pour les données obligatoires (nom, email, etc.).

🔄

DEFAULT (Valeur par défaut)

Fonction : Valeur utilisée si aucune n'est spécifiée.

actif BOOLEAN DEFAULT TRUE

Exemple : Tous les nouveaux comptes sont actifs par défaut.

🔍

UNIQUE (Unique)

Fonction : Toutes les valeurs doivent être différentes.

email TEXT UNIQUE

Utilisation : Pour éviter les doublons (emails, numéros de série).

Exercice pratique : Créer 3 tables différentes

Dans votre base de données exercices.db, créez ces 3 tables :

1

Table "films"

Créez une table pour noter vos films préférés avec :

  • Un ID unique (clé primaire)
  • Titre (obligatoire)
  • Réalisateur
  • Année de sortie
  • Votre note sur 10
  • Si vous l'avez vu ou non (vrai/faux, vrai par défaut)
2

Table "recettes"

Créez une table pour vos recettes de cuisine avec :

  • ID
  • Nom de la recette (obligatoire)
  • Temps de préparation en minutes
  • Difficulté (texte : "facile", "moyen", "difficile")
  • Note personnelle sur 5
3

Table "contacts"

Créez un carnet d'adresses avec :

  • ID
  • Nom (obligatoire)
  • Prénom (obligatoire)
  • Téléphone (unique)
  • Email (unique)
  • Date d'ajout (par défaut : date du jour)
💡

Solution pour la table "films"

CREATE TABLE films (
    id INTEGER PRIMARY KEY,
    titre TEXT NOT NULL,
    realisateur TEXT,
    annee INTEGER,
    note INTEGER,
    vu BOOLEAN DEFAULT TRUE
);

Les erreurs courantes et solutions

Erreur : "table already exists"

Cause : Vous essayez de créer une table qui existe déjà.

Solution : Utilisez CREATE TABLE IF NOT EXISTS ou choisissez un autre nom.

-- Ne crée la table que si elle n'existe pas
CREATE TABLE IF NOT EXISTS clients (...);

Erreur : "near "(": syntax error"

Cause : Faute de frappe ou parenthèse mal placée.

Solution : Vérifiez soigneusement votre syntaxe. Chaque parenthèse ouvrante doit avoir une fermante.

Erreur : "no such column"

Cause : Vous avez fait une faute de frappe dans un nom de colonne.

Solution : Vérifiez l'orthographe des noms de colonnes.

⚠️

Conseil de débogage

Quand vous avez une erreur, commencez par :

  1. Vérifiez les parenthèses (autant d'ouvrantes que de fermantes)
  2. Vérifiez les points-virgules (un à la fin de la commande)
  3. Vérifiez les virgules entre les colonnes (sauf après la dernière)
  4. Vérifiez l'orthographe des mots-clés SQL

Modifier une table existante

Vous avez fait une erreur ou oublié une colonne ? Pas de panique !

Ajouter une colonne (ALTER TABLE)

-- Ajouter une colonne "telephone" à la table "clients"
ALTER TABLE clients ADD COLUMN telephone TEXT;
🗑️

Supprimer une table (DROP TABLE)

-- Supprimer complètement la table "clients"
DROP TABLE clients;

-- Supprimer seulement si elle existe
DROP TABLE IF EXISTS clients;
⚠️

ATTENTION avec DROP TABLE !

DROP TABLE efface la table et toutes ses données définitivement ! Pas de retour en arrière possible. Utilisez avec extrême précaution.

Exercice avancé : Concevoir un système complet

Imaginez que vous créez une application pour une bibliothèque. Quelles tables auriez-vous besoin ?

📚

Solution suggérée :

-- Table 1 : Livres
CREATE TABLE livres (
    id INTEGER PRIMARY KEY,
    isbn TEXT UNIQUE,
    titre TEXT NOT NULL,
    auteur TEXT,
    annee_publication INTEGER,
    genre TEXT
);

-- Table 2 : Membres
CREATE TABLE membres (
    id INTEGER PRIMARY KEY,
    nom TEXT NOT NULL,
    prenom TEXT NOT NULL,
    email TEXT UNIQUE,
    date_inscription DATE DEFAULT CURRENT_DATE
);

Nous verrons les FOREIGN KEY (clés étrangères) dans un chapitre ultérieur.

Vérification des connaissances

Question 1

Quelle est la différence entre CREATE DATABASE et CREATE TABLE ?

  • CREATE DATABASE crée une base de données (le "contenant")
  • CREATE TABLE crée une table dans une base (une "pièce" dans le contenant)

Question 2

Que signifie PRIMARY KEY ?

  • C'est l'identifiant unique de chaque ligne
  • Une seule par table (généralement)
  • Ne peut pas être NULL

Question 3

À quoi sert NOT NULL ?

  • Empêche d'avoir des valeurs vides dans cette colonne
  • Utile pour les données obligatoires (nom, email, etc.)
💡

Conseil pour la pratique

Quand vous apprenez, créez d'abord vos tables dans un éditeur de texte (comme Notepad++ ou VS Code), puis copiez-les dans DB Browser. Cela vous permet de :

  1. Corriger plus facilement les erreurs
  2. Sauvegarder vos créations de tables
  3. Partager votre code avec d'autres
  4. Revoir ce que vous avez fait plus tard

Récapitulatif du chapitre

Vous avez maintenant appris :

  • La commande CREATE TABLE pour créer une nouvelle table
  • La syntaxe complète : nom, colonnes, types, contraintes
  • Les types de données de base (TEXT, INTEGER, etc.)
  • Les contraintes importantes : PRIMARY KEY, NOT NULL, DEFAULT, UNIQUE
  • Comment exécuter la commande dans DB Browser
  • Comment vérifier que votre table a été créée
  • Comment modifier une table avec ALTER TABLE
  • Comment supprimer une table avec DROP TABLE (attention !)
  • Les erreurs courantes et comment les résoudre
  • Créé au moins 3 tables différentes pour pratiquer

Félicitations ! Vous savez maintenant créer la structure qui accueillera vos données. Dans le prochain chapitre, nous étudierons en détail les types de données SQL.