CodeGym /Kurse /SQL SELF /Grundlagen der Tabellenerstellung: CREATE TABLE

Grundlagen der Tabellenerstellung: CREATE TABLE

SQL SELF
Level 17 , Lektion 0
Verfügbar

In den ersten Vorlesungen haben wir die Basics zu relationalen Datenbanken und PostgreSQL gelegt, gelernt, wie man mit psql und pgAdmin arbeitet und wie man Datenbanken erstellt und verwaltet. Jetzt ist es Zeit, zum eigentlichen "Baumaterial" von relationalen Datenbanken überzugehen – den Tabellen. Genau in den Tabellen wird die ganze Info gespeichert, die wir später filtern, sortieren oder joinen können.

Tabellen in PostgreSQL erstellst du mit dem Befehl CREATE TABLE. Der Befehl beschreibt die Struktur der Tabelle: ihren Namen, die Spalten und deren Datentypen.

Allgemeiner Aufbau des Befehls

So sieht das Grund-Syntax aus:

CREATE TABLE tabelle (
    spalte1 datentyp constraints,
    spalte2 datentyp constraints,
    ...
);

Schauen wir uns die Teile an:

  • tabelle – Name der Tabelle (zum Beispiel students).
  • spalte1 – Name der Spalte (zum Beispiel id, name).
  • datentyp – Datentyp der Spalte (zum Beispiel INTEGER, VARCHAR).
  • constraints – Einschränkungen für die Daten (zum Beispiel NOT NULL, PRIMARY KEY).

Jetzt erstellen wir unsere erste Tabelle.

Beispiel für die Tabellenerstellung

Szenario: In einer Übungsdatenbank sollen Infos über Studierende gespeichert werden. Dafür erstellen wir die Tabelle students mit folgenden Feldern:

  • id: eindeutige ID des Studenten (wird automatisch hochgezählt);
  • name: Name des Studenten (String bis zu 100 Zeichen);
  • age: Alter des Studenten (positive ganze Zahl).
CREATE TABLE students (
    id SERIAL PRIMARY KEY,  -- eindeutige ID des Studenten
    name VARCHAR(100),      -- Name
    age INTEGER             -- Alter
);

Was passiert hier:

  1. id SERIAL PRIMARY KEY: Erstellt die Spalte id, die automatisch eindeutige Zahlen (1, 2, 3...) für jede Zeile generiert. Sie ist auch der Primärschlüssel der Tabelle.
  2. name VARCHAR(100): Erstellt eine Textspalte, wobei VARCHAR(100) bedeutet, dass der String bis zu 100 Zeichen lang sein darf.
  3. age INTEGER: Erstellt eine Zahlenspalte für das Alter.

Wenn du diesen Befehl in psql oder pgAdmin ausführst, wird die Tabelle students erstellt.

Datentypen für Spalten

Beim Erstellen einer Tabelle ist es wichtig, für jede Spalte den richtigen Datentyp zu wählen. PostgreSQL bietet viele Typen, aber wir starten mit den beliebtesten.

Datentyp Beschreibung Beispielwerte
INTEGER Ganze Zahlen. Perfekt für Alter, Mengen, IDs. 1, 42, 100
VARCHAR(n) String bis zu n Zeichen. Ideal für Texte mit bekannter Längenbegrenzung. 'Alice', 'Bob'
TEXT Unbegrenzte Strings. Für lange Texte (z.B. Produktbeschreibung). 'Sehr langer Text...'
DATE Datum ohne Uhrzeit. Für Geburtsdaten, Events usw. 2023-10-12
BOOLEAN Boolescher Typ: TRUE oder FALSE. Für Flags (z.B. erledigt/nicht erledigt). TRUE, FALSE

Den passenden Datentyp wählen

  • Wenn du Zahlen speicherst – nimm INTEGER.
  • Für Strings mit bekannter Längenbegrenzung – am besten VARCHAR(n).
  • Für unbegrenzten Text – nimm TEXT.
  • Datum und Zeit speicherst du in DATE oder TIMESTAMP.

Beispiel: Wir erstellen die Tabelle courses

Angenommen, wir wollen in unserer Datenbank auch Infos zu Kursen speichern. Jeder Kurs hat:

  • id: eindeutige ID;
  • name: Name des Kurses (String bis zu 100 Zeichen);
  • description: Beschreibung des Kurses (langer Text);
  • start_date: Startdatum des Kurses.

SQL-Code:

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,      -- eindeutige ID des Kurses
    name VARCHAR(100),          -- Name des Kurses
    description TEXT,           -- Beschreibung
    start_date DATE             -- Startdatum
);

Praxisaufgabe

Jetzt bist du dran, eine Tabelle zu erstellen! Hier die Aufgabe:

  1. Erstelle die Tabelle teachers mit folgenden Feldern:
    • id: eindeutige ID.
    • name: Name des Lehrers (String bis zu 50 Zeichen).
    • subject: Fach, das er/sie unterrichtet (String bis zu 50 Zeichen).
    • hire_date: Einstellungsdatum.

Beispielcode zum Ausführen:

CREATE TABLE teachers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    hire_date DATE
);

Nach dem Ausführen kannst du mit dem Befehl \d teachers in psql checken, ob die Tabelle erstellt wurde.

Typische Fehler beim Erstellen von Tabellen

Gerade am Anfang passieren beim Arbeiten mit Tabellen oft Fehler. Hier ein paar typische Situationen:

Fehler im Namen der Tabelle oder Spalte. In PostgreSQL sind Namen eigentlich nicht case-sensitiv, aber wenn du Anführungszeichen " um Namen benutzt, musst du aufpassen. Zum Beispiel erstellt CREATE TABLE "MyTable" die Tabelle "MyTable", aber mytable wird dann nicht als deren Name erkannt.

Falscher Datentyp. Wenn du einen nicht existierenden Datentyp angibst, gibt es einen Fehler.

CREATE TABLE beispiel (
    spalte1 KOMISCHER_TYP
);

Dieser Befehl wird nicht ausgeführt, weil KOMISCHER_TYP nicht existiert.

PRIMARY KEY vergessen. Wenn du den Primärschlüssel vergisst, wird die Tabelle zwar erstellt, aber es wird schwieriger, Zeilen eindeutig zu identifizieren.

2
Aufgabe
SQL SELF, Level 17, Lektion 0
Gesperrt
Erstellung einer Basistabelle
Erstellung einer Basistabelle
2
Aufgabe
SQL SELF, Level 17, Lektion 0
Gesperrt
Erstellen einer Tabelle mit verschiedenen Datentypen
Erstellen einer Tabelle mit verschiedenen Datentypen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION