< back to overview
x

8 - CREATE TABLE

Bis jetzt haben wir mit einer vorgegebenen Tabelle gearbeitet. Jetzt lernen wir wie wir eine neue Tabelle erstellen können.

Tabelle Erstellen

DatentypBeschreibung
SERIAL PRIMARY KEYAutomatisch hochzählende des Primärschlüssel (id)
INTGanzzahl
FLOATDezimalzahl mit Nachkommastelle
TEXTSehr langer Text
VARCHAR(255)Kleiner Text (max 255 Zeichen; kann auch kleiner sein)
TIMESTAMPZeitstempel

Hier ein Beispiel wie die Tabelle users definiert wird.

CREATE TABLE users(
  id SERIAL PRIMARY KEY,
  name VARCHAR(255),
  age INT,
  city VARCHAR(255),
  country VARCHAR(2)
);

Einschränkungen

EinschränkungenBeschreibung
NOT NULLNicht leer
UNIQUEEinzigartig
REFERENCESFremdschlüssel auf andere Tabelle
DEFAULTEin standart Wert wenn nichts angeben

Beispiel:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username VARCHAR(255) NOT NULL UNIQUE,
  email VARCHAR(255) NOT NULL UNIQUE,
  password VARCHAR(255) NOT NULL,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);

Zu beachten: TIMESTAMP verwenden hier den Zusatz WITH TME ZONE, was auch die Zeitzone im Timestamp festhält, und als Standard Wert wir now() verwenden, was uns die aktuelle Zeit zurück gibt.

Aufgabe

Löst jetzt Aufgabe 1-3.

Fremdschlüssel

Wenn wir wie im Intro Video eine Relation (also Verbindung) zwischen 2 Tabellen herstellen wollen, müssen wir einen Fremdschlüssel verwenden.

Der Primärschlüssel einer Tabelle ist ja die id, wir müssen also irgendwie diese id in einer anderen Tabelle speichern können.
Dies schreiben wir wie folgt:
user_id INT NOT NULL REFERENCES users(id).

Hier ein Beispiel einer Posts Tabelle:

CREATE TABLE posts (
  id SERIAL PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  text TEXT DEFAULT 'TODO',
  user_id INT NOT NULL REFERENCES users(id),
  created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);

Aufgabe

Löst jetzt Aufgabe 4.

SQL Editor (Zusatz)

Mit DROP TABLE table_name; kannst du eine bestehende Tabelle löschen.

Teste deine Queries im Editor:
hier öffnen