CREATE TABLE
CREATE TABLE déclare une nouvelle table : ses colonnes, leurs types et les contraintes qui protègent les données. C'est la traduction concrète d'un modèle MLD en schéma de base.
- créer table
- schéma
- DDL
- types
- STRICT
- AUTOINCREMENT
Syntaxe
CREATE TABLE [IF NOT EXISTS] nom ( id INTEGER PRIMARY KEY, colonne TYPE [NOT NULL] [DEFAULT valeur] [CHECK (...)], autre_id INTEGER REFERENCES autre_table(id));Exemple
CREATE TABLE absences ( id INTEGER PRIMARY KEY, student_id INTEGER NOT NULL REFERENCES students(id), absent_on TEXT NOT NULL, justified INTEGER NOT NULL DEFAULT 0 CHECK (justified IN (0, 1)));INSERT INTO absences (student_id, absent_on)VALUES (2, '2024-10-03');SELECT * FROM absences;-- Jeu de données : école-- id est attribué automatiquement, justified prend sa valeur par défaut.-- Résultat attendu :-- 1 | 2 | 2024-10-03 | 0À retenir
- SQLite n'a que cinq classes de stockage : INTEGER, REAL, TEXT, BLOB et NULL. Il n'y a pas de type date ni booléen : on stocke une date en texte ISO ('AAAA-MM-JJ') et un booléen en 0 ou 1.
- Une colonne INTEGER PRIMARY KEY est numérotée automatiquement (alias du rowid) : inutile de fournir l'id à l'insertion.
- Piège : AUTOINCREMENT n'est pas nécessaire pour la numérotation. Il empêche seulement de réutiliser l'identifiant d'une ligne supprimée, coûte un peu plus cher, et la documentation de SQLite le déconseille hors besoin précis.
- Piège : SQLite accepte n'importe quel type déclaré et ne l'impose pas : VARCHAR(10) n'empêche pas de stocker 500 caractères, ni du texte dans une colonne INTEGER. Ajoutez STRICT après la parenthèse finale (SQLite 3.37+) pour un typage vérifié.
Voir aussi
- ALTER TABLEALTER TABLE fait évoluer une table existante sans perdre ses données : ajouter, renommer ou supprimer une colonne, renommer la table. C'est l'outil des migrations de schéma.
- PRIMARY KEYLa clé primaire identifie chaque ligne de façon unique et stable : jamais deux fois la même valeur, jamais NULL. C'est elle que référencent les clés étrangères des autres tables.
- FOREIGN KEYUne clé étrangère garantit qu'une valeur pointe vers une ligne qui existe dans une autre table, comme l'élève d'une absence. Elle empêche les références orphelines et encadre les suppressions.
- UNIQUE, NOT NULL, CHECKCes contraintes refusent les données invalides dès l'écriture : NOT NULL impose une valeur, UNIQUE interdit les doublons, CHECK valide une règle métier comme une remise comprise entre 1 et 50 %.