Résumé :dans ce tutoriel, vous apprendrez à créer de nouvelles tables en utilisant SQLite CREATE TABLE
déclaration en utilisant diverses options.
Introduction à SQLite CREATE TABLE
déclaration
Pour créer une nouvelle table dans SQLite, vous utilisez CREATE TABLE
déclaration en utilisant la syntaxe suivante :
CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type PRIMARY KEY,
column_2 data_type NOT NULL,
column_3 data_type DEFAULT 0,
table_constraints
) [WITHOUT ROWID];
Code language: SQL (Structured Query Language) (sql)
Dans cette syntaxe :
- Tout d'abord, spécifiez le nom de la table que vous souhaitez créer après le
CREATE TABLE
mots clés. Le nom de la table ne peut pas commencer parsqlite_
car il est réservé à l'usage interne de SQLite. - Deuxièmement, utilisez
IF NOT EXISTS
possibilité de créer une nouvelle table si elle n'existe pas. Tentative de création d'une table qui existe déjà sans utiliser leIF NOT EXISTS
l'option entraînera une erreur. - Troisièmement, spécifiez éventuellement le
schema_name
auquel appartient la nouvelle table. Le schéma peut être la base de données principale,temp
base de données ou toute base de données attachée. - Quatrièmement, spécifiez la liste des colonnes de la table. Chaque colonne a un nom, un type de données et la contrainte de colonne. SQLite prend en charge
PRIMARY KEY
,UNIQUE
,NOT NULL
, etCHECK
contraintes de colonne. - Cinquièmement, spécifiez les contraintes de table telles que
PRIMARY KEY
,FOREIGN KEY
,UNIQUE
, etCHECK
contraintes. - Enfin, utilisez éventuellement le
WITHOUT ROWID
option. Par défaut, une ligne dans une table a une colonne implicite, appeléerowid
,oid
ou_rowid_
colonne. Lerowid
La colonne stocke une clé entière signée 64 bits qui identifie de manière unique la ligne à l'intérieur de la table. Si vous ne voulez pas que SQLite crée lerowid
colonne, vous spécifiez leWITHOUT ROWID
option. Une table qui contient lerowid
la colonne est connue sous le nom derowid
table. Notez que leWITHOUT ROWID
l'option n'est disponible que dans SQLite 3.8.2 ou version ultérieure.
Notez que la clé primaire d'une table est une colonne ou un groupe de colonnes qui identifient de manière unique chaque ligne de la table.
SQLite CREATE TABLE
exemples
Supposons que vous deviez gérer des contacts à l'aide de SQLite.
Chaque contact dispose des informations suivantes :
- Prénom
- Nom de famille
- Téléphone
L'exigence est que l'e-mail et le téléphone doivent être uniques. De plus, chaque contact appartient à un ou plusieurs groupes, et chaque groupe peut avoir zéro ou plusieurs contacts.
Sur la base de ces exigences, nous avons proposé trois tableaux :
- Les
contacts
table qui stocke les informations de contact. - Les
groups
table qui stocke les informations de groupe. - Les
contact_groups
table qui stocke la relation entre les contacts et les groupes.
Le schéma de base de données suivant illustre les tables :contacts
groups
, et contact_groups.

L'instruction suivante crée les contacts
tableau.
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Le contact_id
est la clé primaire des contacts
tableau.
Étant donné que la clé primaire se compose d'une colonne, vous pouvez utiliser la contrainte de colonne.
Le first_name
et last_name
les colonnes ont TEXT
classe de stockage et ces colonnes sont NOT NULL
. Cela signifie que vous devez fournir des valeurs lorsque vous insérez ou mettez à jour des lignes dans les contacts
tableau.
L'email et le téléphone sont uniques donc nous utilisons le UNIQUE
contrainte pour chaque colonne.
L'instruction suivante crée les groups
tableau :
CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Les groups
table est assez simple avec deux colonnes :group_id
et name
. Le group_id
colonne est la colonne de clé primaire.
L'instruction suivante crée contact_groups
tableau :
CREATE TABLE contact_groups(
contact_id INTEGER,
group_id INTEGER,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Les contact_groups
table a une clé primaire composée de deux colonnes :contact_id
et group_id
.
Pour ajouter la contrainte de clé primaire de table, vous utilisez cette syntaxe :
PRIMARY KEY (contact_id, group_id)
Code language: SQL (Structured Query Language) (sql)
De plus, le contact_id
et group_id
sont les clés étrangères. Par conséquent, vous utilisez FOREIGN KEY
contrainte de définir une clé étrangère pour chaque colonne.
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
Code language: SQL (Structured Query Language) (sql)
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
Code language: SQL (Structured Query Language) (sql)
Notez que nous en discuterons dans la FOREIGN KEY
contrainte en détail dans le tutoriel suivant.
Dans ce didacticiel, vous avez appris à créer une nouvelle table avec diverses options à l'aide de SQLite CREATE TABLE
déclaration.