PostgreSQL - CREATE Table: Ein Anfängerleitfaden

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt von PostgreSQL, dabei konzentrieren wir uns insbesondere darauf, wie man Tabellen erstellt. Machen Sie sich keine Sorgen, wenn Sie noch nie eine Zeile Code geschrieben haben – ich werde Ihr freundlicher Guide sein, und wir gehen das Schritt für Schritt durch. Am Ende dieses Tutorials werden Sie Tabellen wie ein Profi erstellen können!

PostgreSQL - Create Table

Was ist eine Tabelle in PostgreSQL?

Bevor wir uns den Details der Tabelleerstellung zuwenden, lassen Sie uns verstehen, was eine Tabelle eigentlich ist. Stellen Sie sich eine Tabelle vor – Sie wissen, diese Raster mit Zeilen und Spalten? Eine Datenbanktabelle ist sehr ähnlich. Es ist eine Sammlung von verwandten Daten, die in Zeilen (auch als Datensätze bezeichnet) und Spalten (auch als Felder bezeichnet) organisiert sind.

Zum Beispiel, wenn Sie eine kleine Bibliothek führen, könnten Sie eine Tabelle namens "Bücher" mit Spalten wie "Titel", "Autor", "ISBN" und "Veröffentlichungsdatum" haben. Jede Zeile in dieser Tabelle würde ein einzelnes Buch in Ihrer Bibliothek darstellen.

Die CREATE TABLE Syntax

Nun schauen wir uns die grundlegende Syntax zur Erstellung einer Tabelle in PostgreSQL an:

CREATE TABLE tabellen_name (
spalte1 datentyp constraints,
spalte2 datentyp constraints,
spalte3 datentyp constraints,
....
);

Lassen Sie sich nicht erschrecken! Es ist einfacher, als es aussieht. Lassen Sie uns das einmal durchgehen:

  1. CREATE TABLE: Dies ist der Befehl, der PostgreSQL mitteilt, dass Sie eine neue Tabelle erstellen möchten.
  2. tabellen_name: Hier geben Sie an, wie Sie Ihre Tabelle nennen möchten.
  3. Innerhalb der Klammern listen Sie alle Spalten auf, die Sie in Ihrer Tabelle haben möchten.
  4. Für jede Spalte geben Sie an:
  • Den Namen der Spalte
  • Den Datentyp (wie INTEGER für ganze Zahlen, TEXT für Zeichenketten, etc.)
  • Jegliche Constraints (wie NOT NULL, wenn die Spalte immer einen Wert haben muss)

Beispiele: Lasst uns einige Tabellen erstellen!

Beispiel 1: Eine einfache Bücher-Tabelle

Fangen wir mit einem einfachen Beispiel an. Wir erstellen eine Tabelle für unsere imaginierte Bibliothek:

CREATE TABLE bücher (
buch_id SERIELL PRIMARY KEY,
titel VARCHAR(100) NOT NULL,
autor VARCHAR(50) NOT NULL,
veröffentlichungsdatum DATE,
isbn VARCHAR(13) UNIQUE
);

Lassen Sie uns das einmal durchgehen:

  • buch_id: Dies ist ein eindeutiger Identifikator für jedes Buch. SERIELL bedeutet, dass er automatisch für jedes neue hinzugefügte Buch erhöht wird.
  • titel: Dies kann bis zu 100 Zeichen lang sein und darf nicht leer sein (NOT NULL).
  • autor: Bis zu 50 Zeichen, darf ebenfalls nicht leer sein.
  • veröffentlichungsdatum: Dies ist optional (wir haben NOT NULL nicht angegeben).
  • isbn: Dies ist für jedes Buch eindeutig.

Beispiel 2: Eine komplexere Kunden-Tabelle

Nun erstellen wir eine etwas komplexere Tabelle für Kunden:

CREATE TABLE kunden (
kunden_id SERIELL PRIMARY KEY,
vorname VARCHAR(50) NOT NULL,
nachname VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
telefon VARCHAR(20),
registrationsdatum DATE DEFAULT CURRENT_DATE,
treuepunkte INTEGER DEFAULT 0 CHECK (treuepunkte >= 0)
);

Diese Tabelle führt einige neue Konzepte ein:

  • DEFAULT: Wir verwenden dies für registrationsdatum, um es automatisch auf das heutige Datum zu setzen, wenn ein neuer Kunde hinzugefügt wird.
  • CHECK: Dies stellt sicher, dass treuepunkte niemals negativ sein können.

Datentypen in PostgreSQL

PostgreSQL bietet eine Vielzahl von Datentypen. Hier sind einige häufig verwendete:

Datentyp Beschreibung Beispiel
INTEGER Ganze Zahl 42
SERIELL Automatisch inkrementierende Ganzzahl Automatisch zugewiesen
VARCHAR(n) Variabellange Zeichenkette bis zu n Zeichen 'Hallo, Welt!'
TEXT Variabellange Zeichenkette beliebiger Länge 'Ein sehr langer Text...'
DATE Datum (ohne Uhrzeit) '2023-06-15'
TIMESTAMP Datum und Uhrzeit '2023-06-15 14:30:00'
BOOLEAN True/False-Wert TRUE oder FALSE
NUMERIC(p,s) Exakte Zahl mit p Stellen (s nach dem Dezimalpunkt) 123.45

Constraints in PostgreSQL

Constraints sind Regeln, die wir auf unsere Spalten setzen. Hier sind einige häufig verwendete:

Constraint Beschreibung
NOT NULL Die Spalte darf keinen NULL-Wert enthalten
UNIQUE Alle Werte in der Spalte müssen unterschiedlich sein
PRIMARY KEY Eindeutig identifiziert jede Zeile in der Tabelle
FOREIGN KEY Stellt die Referentielle Integrität zwischen zwei Tabellen sicher
CHECK Stellt sicher, dass alle Werte in einer Spalte eine spezifische Bedingung erfüllen
DEFAULT Setzt einen Standardwert für eine Spalte

Noch einige weitere Beispiele

Beispiel 3: Eine Tabelle mit Fremdschlüssel

Lassen Sie uns eine 'Bestellungen'-Tabelle erstellen, die auf unsere 'Kunden'-Tabelle verweist:

CREATE TABLE bestellungen (
bestell_id SERIELL PRIMARY KEY,
kunden_id INTEGER REFERENCES kunden(kunden_id),
bestell datum DEFAULT CURRENT_DATE,
gesamt_betrag NUMERIC(10,2) CHECK (gesamt_betrag > 0)
);

Diese Tabelle hat einen Fremdschlüssel (kunden_id), der auf die kunden-Tabelle verweist, um sicherzustellen, dass jede Bestellung mit einem gültigen Kunden verbunden ist.

Beispiel 4: Eine Tabelle mit zusammengesetztem Primärschlüssel

Manchmal möchte man einen Primärschlüssel, der aus mehreren Spalten besteht:

CREATE TABLE buch_autoren (
buch_id INTEGER REFERENCES bücher(buch_id),
autor_id INTEGER REFERENCES autoren(autor_id),
PRIMARY KEY (buch_id, autor_id)
);

Diese Tabelle könnte verwendet werden, um Bücher mit mehreren Autoren oder Autoren, die mehrere Bücher geschrieben haben, zu verwalten.

Schlussfolgerung

Glückwunsch! Sie haben gerade Ihre ersten Schritte in der Welt der PostgreSQL-Tabelleerstellung gemacht. Denken Sie daran, Übung macht den Meister. Versuchen Sie, Tabellen für verschiedene Szenarien zu erstellen – vielleicht eine Musikbibliothek, ein Kochbuch oder sogar eine Datenbank für Ihre Lieblings-Videospiele.

Haben Sie keine Angst vor Experimenten und Fehlern – das ist, wie wir lernen! Und immer daran denken: In der Welt der Datenbanken haben Sie die Macht, um Datenwelten zu ERSTELLEN, ZU ÄNDERN und sogar ZU LÖSCHEN. Verwenden Sie diese Macht klug, junger Padawan!

Frohes Coden und möge die PostgreSQL mit Ihnen sein!

Credits: Image by storyset