SQLite
 sql >> Base de données >  >> RDS >> SQLite

Créer une table SQLite

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 par sqlite_ 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 le IF 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 , et CHECK contraintes de colonne.
  • Cinquièmement, spécifiez les contraintes de table telles que PRIMARY KEY , FOREIGN KEY , UNIQUE , et CHECK contraintes.
  • Enfin, utilisez éventuellement le WITHOUT ROWID option. Par défaut, une ligne dans une table a une colonne implicite, appelée rowid , oid ou _rowid_ colonne. Le rowid 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 le rowid colonne, vous spécifiez le WITHOUT ROWID option. Une table qui contient le rowid la colonne est connue sous le nom de rowid table. Notez que le WITHOUT 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
  • E-mail
  • 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 ACTIONCode language: SQL (Structured Query Language) (sql)
FOREIGN KEY (group_id) 
    REFERENCES groups (group_id) 
      ON DELETE CASCADE 
      ON UPDATE NO ACTIONCode 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.