SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Tabelle erstellen

Zusammenfassung :In diesem Tutorial erfahren Sie, wie Sie mit SQLite CREATE TABLE neue Tabellen erstellen Anweisung mit verschiedenen Optionen.

Einführung in SQLite CREATE TABLE Erklärung

Um eine neue Tabelle in SQLite zu erstellen, verwenden Sie CREATE TABLE Anweisung mit der folgenden Syntax:

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)

In dieser Syntax:

  • Geben Sie zuerst den Namen der Tabelle an, die Sie nach CREATE TABLE erstellen möchten Schlüsselwörter. Der Name der Tabelle darf nicht mit sqlite_ beginnen weil es für die interne Verwendung von SQLite reserviert ist.
  • Zweitens:Verwenden Sie IF NOT EXISTS Option zum Erstellen einer neuen Tabelle, falls diese noch nicht vorhanden ist. Versuch, eine bereits vorhandene Tabelle zu erstellen, ohne den IF NOT EXISTS zu verwenden Option führt zu einem Fehler.
  • Drittens geben Sie optional den schema_name an zu der die neue Tabelle gehört. Das Schema kann die Hauptdatenbank temp sein Datenbank oder eine angehängte Datenbank.
  • Viertens geben Sie die Spaltenliste der Tabelle an. Jede Spalte hat einen Namen, einen Datentyp und die Spalteneinschränkung. SQLite unterstützt PRIMARY KEY , UNIQUE , NOT NULL , und CHECK Spalteneinschränkungen.
  • Fünftens geben Sie die Tabelleneinschränkungen wie PRIMARY KEY an , FOREIGN KEY , UNIQUE , und CHECK Einschränkungen.
  • Verwenden Sie schließlich optional den WITHOUT ROWID Möglichkeit. Standardmäßig hat eine Zeile in einer Tabelle eine implizite Spalte, die als rowid bezeichnet wird , oid oder _rowid_ Säule. Die rowid Spalte speichert einen vorzeichenbehafteten 64-Bit-Ganzzahlschlüssel, der die Zeile innerhalb der Tabelle eindeutig identifiziert. Wenn Sie dies nicht möchten, erstellt SQLite die rowid Spalte geben Sie die WITHOUT ROWID an Möglichkeit. Eine Tabelle, die die rowid enthält Spalte wird als rowid bezeichnet Tisch. Beachten Sie, dass WITHOUT ROWID Option ist nur in SQLite 3.8.2 oder höher verfügbar.

Beachten Sie, dass der Primärschlüssel einer Tabelle eine Spalte oder eine Gruppe von Spalten ist, die jede Zeile in der Tabelle eindeutig identifiziert.

SQLite CREATE TABLE Beispiele

Angenommen, Sie müssen Kontakte mit SQLite verwalten.

Jeder Kontakt hat die folgenden Informationen:

  • Vorname
  • Nachname
  • E-Mail
  • Telefon

Voraussetzung ist, dass E-Mail und Telefon eindeutig sind. Außerdem gehört jeder Kontakt zu einer oder mehreren Gruppen, und jede Gruppe kann null oder viele Kontakte haben.

Basierend auf diesen Anforderungen haben wir drei Tabellen entwickelt:

  • Die contacts Tabelle, die Kontaktinformationen speichert.
  • Die groups Tabelle, die Gruppeninformationen speichert.
  • Die contact_groups Tabelle, die die Beziehung zwischen Kontakten und Gruppen speichert.

Das folgende Datenbankdiagramm veranschaulicht Tabellen:contacts groups und contact_groups.

Die folgende Anweisung erstellt die contacts Tabelle.

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)

Probieren Sie es aus

Die contact_id ist der Primärschlüssel der contacts Tabelle.

Da der Primärschlüssel aus einer Spalte besteht, können Sie die Spaltenbeschränkung verwenden.

Der first_name und last_name Spalten haben TEXT Speicherklasse und diese Spalten sind NOT NULL . Das bedeutet, dass Sie Werte angeben müssen, wenn Sie Zeilen in den contacts einfügen oder aktualisieren Tabelle.

Die E-Mail-Adresse und das Telefon sind eindeutig, daher verwenden wir den UNIQUE Einschränkung für jede Spalte.

Die folgende Anweisung erstellt die groups Tabelle:

CREATE TABLE groups (
   group_id INTEGER PRIMARY KEY,
   name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Die groups Tabelle ist recht einfach mit zwei Spalten:group_id und name . Die group_id Spalte ist die Primärschlüsselspalte.

Die folgende Anweisung erstellt contact_groups Tabelle:

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)

Probieren Sie es aus

Die contact_groups Tabelle hat einen Primärschlüssel, der aus zwei Spalten besteht:contact_id und group_id .

Um die Primärschlüsseleinschränkung der Tabelle hinzuzufügen, verwenden Sie diese Syntax:

PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql)

Außerdem die contact_id und group_id sind die Fremdschlüssel. Daher verwenden Sie FOREIGN KEY Einschränkung, um einen Fremdschlüssel für jede Spalte zu definieren.

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)

Beachten Sie, dass wir dies im FOREIGN KEY besprechen werden Einschränkung im Detail im nachfolgenden Tutorial.

In diesem Tutorial haben Sie gelernt, wie Sie mit SQLite CREATE TABLE eine neue Tabelle mit verschiedenen Optionen erstellen Erklärung.