Mit dem Befehl CREATE TABLE werden in Post­greS­QL neue Tabellen innerhalb einer Datenbank erstellt. Bei der Nutzung des Kommandos legen Sie außerdem direkt un­ter­schied­li­che Spe­zi­fi­ka­tio­nen für die Tabelle und ihre einzelnen Spalten fest.

Was ist Post­greS­QL CREATE TABLE?

Der Befehl CREATE TABLE wird in Post­greS­QL genutzt, um eine neue Tabelle in einer be­stehen­den Datenbank zu erstellen. Dabei legen Sie immer auch bereits einen ein­deu­ti­gen und in der Datenbank ein­zig­ar­ti­gen Namen für die Tabelle und ihre einzelnen Spalten fest. Auch die Spalten erhalten jeweils einen Namen und einen Datentyp, den sie am Ende enthalten müssen. Außerdem können bereits während der Er­stel­lung Ein­schrän­kun­gen für einzelne oder alle Spalten definiert werden.

Tipp

Möchten Sie die Ein­stel­lun­gen Ihrer Tabelle zu einem späteren Zeitpunkt verändern, können Sie dafür innerhalb des Da­ten­bank­ma­nage­ment­sys­tems den Befehl ALTER TABLE nutzen und so einzelne Spalten be­darfs­ge­nau anpassen.

Syntax und Funk­ti­ons­wei­se von CREATE TABLE

Die grund­le­gen­de Syntax von Post­greS­QL CREATE TABLE ist wie folgt:

CREATE TABLE name_der_tabelle(
spalte1 datentyp PRIMARY KEY,
spalte2 datentyp,
spalte3 datentyp,
…
);
post­gres­ql

Sie nutzen also zunächst den Haupt­be­fehl CREATE TABLE, um Post­greS­QL an­zu­wei­sen, eine neue Tabelle anzulegen. Diese be­zeich­nen Sie dann mit einem ein­deu­ti­gen Namen. In Klammern folgen die Be­zeich­nun­gen der einzelnen Spalten und eine Fest­set­zung der erlaubten Da­ten­ty­pen.

Möchten Sie bereits Ein­schrän­kun­gen (Cons­traints) einbauen, so verändert sich die Syntax wie folgt:

CREATE TABLE name_der_tabelle(
spalte1 datentyp PRIMARY KEY einschränkung,
spalte2 datentyp einschränkung,
spalte3 datentyp einschränkung,
…
);
post­gres­ql

Post­greS­QL un­ter­stützt, abseits von PRIMARY KEY, folgende Arten von Ein­schrän­kun­gen:

  • NOT NULL: Auf diese Weise stellen Sie sicher, dass die jeweilige Spalte keine NULL-Werte enthalten darf.
  • UNIQUE: De­fi­nie­ren Sie diese Ein­schrän­kung, um si­cher­zu­ge­hen, dass alle Werte in einer Spalte oder Kom­bi­na­ti­on von Spalten ein­zig­ar­tig sind.
  • CHECK: Mit CHECK legen Sie Be­din­gun­gen fest, die beim Einfügen oder Ak­tua­li­sie­ren von Daten erfüllt sein müssen.
  • FOREIGN KEY: Diese Ein­schrän­kung wird benötigt, um Be­zie­hun­gen zu einer Spalte in einer anderen Tabelle zu setzen.
  • DEFAULT: Definiert einen Stan­dard­wert für eine Spalte, falls kein ex­pli­zi­ter Wert beim Einfügen angegeben wird.
Dedicated Server
De­di­zier­te Server mit mo­derns­ten Pro­zes­so­ren
  • 100 % En­ter­pri­se-Hardware
  • Kon­fi­gu­rier­ba­re Hardware-Aus­stat­tung
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren

Pra­xis­bei­spiel für Post­greS­QL CREATE TABLE

Die Funk­ti­ons­wei­se von CREATE TABLE in Post­greS­QL wird deut­li­cher, wenn Sie sie an einem prak­ti­schen Beispiel nach­voll­zie­hen können. Dafür erstellen wir nun eine neue Tabelle namens „Kun­den­lis­te“. Diese soll zunächst vier Spalten enthalten: „ID“, „Name“, „Land“ und „Adresse“. „ID“ de­fi­nie­ren wir als PRIMARY KEY und die Spalten für „ID“ und „Name“ dürfen nicht leer bleiben. So sieht der ent­spre­chen­de Code aus:

CREATE TABLE Kundenliste(
ID INT PRIMARY KEY NOT NULL,
Name VARCHAR(50) NOT NULL,
Land VARCHAR(50),
Adresse VARCHAR(255)
);
post­gres­ql

Nun wird die Datenbank eine leere Tabelle mit diesem Namen und den von Ihnen de­fi­nier­ten Spalten anlegen, die Sie im Anschluss mit Werten füllen können. Die Ausgabe der fertig aus­ge­füll­ten Tabelle sieht dann in etwa fol­gen­der­ma­ßen aus:

ID Name Land Adresse
1 Max Mus­ter­mann Deutsch­land Mus­ter­stra­ße 1, 12345 Mus­ter­stadt
2
3

Erstellte Tabellen ansehen mit \d

Um si­cher­zu­stel­len, dass die Post­greS­QL-Aktion mit CREATE TABLE er­folg­reich war, können Sie den Befehl \d verwenden. Dieser listet Ihnen alle Tabellen innerhalb einer Datenbank auf. So wird er an­ge­wen­det:

testdb-# \d
post­gres­ql

Den Befehl können Sie al­ter­na­tiv auch nutzen, um eine nähere Be­schrei­bung einer be­stimm­ten Tabelle zu erhalten. Für eine Auf­lis­tung aller Spe­zi­fi­ka­tio­nen in unserem Beispiel von oben nutzen Sie ihn wie folgt:

testdb-# \d Kundenliste
post­gres­ql
Zum Hauptmenü