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

Erstellen Sie eine Tabelle in SQLite

Um eine Tabelle in SQLite zu erstellen, verwenden Sie CREATE TABLE Aussage.

Diese Anweisung akzeptiert den Tabellennamen, die Spaltennamen und ihre Definitionen sowie einige andere Optionen.

Beispiel

Hier ist ein einfaches Beispiel.

CREATE TABLE Products(
  ProductId INTEGER PRIMARY KEY AUTOINCREMENT, 
  ProductName TEXT NOT NULL,
  Price NUMERIC
);

In diesem Fall also Products ist der Name der Tabelle und enthält drei Spalten; ProductId , ProductName , und Price .

In diesem Beispiel habe ich den Datentyp jeder Spalte sowie einige Einschränkungen hinzugefügt, aber diese sind alle optional.

Geben Sie das Schema an

Dem Namen der Tabelle kann (optional) der Schemaname vorangestellt werden. Dabei muss der Schemaname entweder main sein , temp , oder der Name einer angehängten Datenbank.

Also könnte ich stattdessen Folgendes tun:

CREATE TABLE Store.Products(
  ProductId, 
  ProductName,
  Price
);

In diesem Fall Store ist der Name der angehängten Datenbank, in der ich die Tabelle erstellen möchte.

Dem Spaltennamen können der Datentyp und eventuelle Einschränkungen folgen.

Datentyp ist optional

Ja, Sie haben richtig gelesen – der Datentyp ist eigentlich optional.

SQLite verwendet dynamische Typisierung, sodass der Datentyp eines Werts mit dem Wert selbst verknüpft ist, nicht mit seinem Container (Spalte). Dies steht im Gegensatz zu den meisten anderen SQL-Datenbanksystemen, wo Sie den Datentyp angeben müssen, wenn Sie die Spalte erstellen.

Also könnte ich stattdessen Folgendes tun:

CREATE TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Einschränkungen und andere Optionen

Sie haben die Möglichkeit, Einschränkungen oder andere Optionen anzugeben, die Sie auf jede Spalte anwenden möchten. Dazu gehören die folgenden:

  • DEFAULT Klausel. Dies gibt einen Standardwert oder -ausdruck für jede Spalte in der Tabelle an.
  • Das COLLATE -Klausel, um den Namen einer Sortierfolge anzugeben, die als Standardsortierfolge für die Spalte verwendet werden soll. Der Standardwert ist BINARY.
  • PRIMARY KEY Klausel. Sie können optional angeben, dass eine Spalte ein Primärschlüssel ist. In SQLite werden sowohl einspaltige als auch zusammengesetzte (mehrspaltige) Primärschlüssel unterstützt.
  • SQLite unterstützt auch die Einschränkungen UNIQUE, NOT NULL, CHECK und FOREIGN KEY.
  • Eine generierte Spaltenbeschränkung (auch als berechnete Spalte bezeichnet). Dies sind Spalten, deren Werte eine Funktion anderer Spalten in derselben Zeile sind.
  • Ob die Tabelle eine WITHOUT ROWID ist Tisch. Dies ist eine Technik zur Leistungsoptimierung, bei der die Spalte „rowid“ weggelassen wird, die eine spezielle Spalte ist, die SQLite standardmäßig verwendet. Weitere Informationen zu dieser Technik finden Sie in der SQLite-Dokumentation.

Temporäre Tabellen

Sie können angeben, dass eine Tabelle eine temporäre Tabelle ist, indem Sie entweder den TEMP verwenden oder TEMPORARY Stichwort.

Wenn Sie eines dieser Schlüsselwörter verwenden, müssen sie zwischen CREATE eingefügt werden und TABLE .

Hier ist ein Beispiel:

CREATE TEMP TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Sie können auch den temp hinzufügen Schema, wenn Sie möchten.

Weitere Beispiele zum Erstellen temporärer Tabellen in SQLite finden Sie unter So erstellen Sie eine temporäre Tabelle.

Eine Tabelle aus einer anderen Tabelle erstellen

Sie können auch ein CREATE TABLE ... AS SELECT verwenden -Anweisung zum Erstellen einer neuen Tabelle basierend auf einer anderen Tabelle. Dabei wird die neue Tabelle mit den Daten aus SELECT gefüllt -Anweisung (die Daten aus einer anderen Tabelle oder Tabellen auswählt).

Hier ist ein einfaches Beispiel:

CREATE TABLE Store.Products2 AS 
SELECT * FROM Store.Products;

Dieses Beispiel erstellt eine neue Tabelle namens Products2 und füllt es mit allen Daten aus den Products Tisch.

Alle Spaltennamen sind die gleichen wie in der Originaltabelle.

Es ist wichtig zu beachten, dass auf diese Weise erstellte Tabellen keinen PRIMARY KEY und keinerlei Einschränkungen haben. Außerdem ist der Standardwert jeder Spalte NULL . Außerdem ist die standardmäßige Sortierreihenfolge für jede Spalte der neuen Tabelle BINARY.