Ein Schema dient in Post­greS­QL dazu, Tabellen zu bündeln und deine Datenbank struk­tu­riert zu halten. Mit dem Befehl CREATE SCHEMA legst du eines an, während du mit DROP SCHEMA ein be­stehen­des Schema ganz einfach wieder entfernst.

Was ist ein Post­greS­QL-Schema?

In Post­greS­QL versteht man unter einem Schema eine Sammlung mehrerer Tabellen. Zu­sätz­lich kann es Indizes, Sequenzen, Da­ten­ty­pen und Funk­tio­nen bündeln. Man kann es sich wie einen Ordner vor­stel­len, wobei Ver­schach­te­lun­gen hier nicht möglich sind. Diese Struktur hilft dir dabei, selbst um­fang­rei­che Da­ten­ban­ken mit vielen Tabellen im Griff zu behalten. Innerhalb des Da­ten­bank­ma­nage­ment­sys­tems ordnet sich das Post­greS­QL-Schema zwischen der Datenbank und den Tabellen ein. Hier die Hier­ar­chie im Überblick:

  1. Instanz (oft als „Server“ be­zeich­net, verwaltet mehrere Da­ten­ban­ken)
  2. Datenbank
  3. Schema
  4. Tabelle
  5. Zeile

Möchtest du ein neues Schema in Post­greS­QL anlegen, nutzt du den Befehl CREATE SCHEMA. Mit DROP SCHEMA löschst du es wieder. In diesem Guide zeigen wir dir, wie beide An­wei­sun­gen funk­tio­nie­ren.

SCHEMA in Post­greS­QL: Die Syntax

Die grund­le­gen­de Syntax für CREATE SCHEMA in Post­greS­QL lautet:

CREATE SCHEMA name;
post­gres­ql

Damit startest du die Er­stel­lung und vergibst einen Namen, der innerhalb deiner Datenbank nur einmal vorkommen darf.

Tabellen einem Post­greS­QL-Schema zuordnen

Sobald du mit dem Befehl Post­greS­QL CREATE TABLE eine Tabelle erstellst, kannst du sie direkt einem Schema zuweisen. Das sieht im Code so aus:

CREATE TABLE ihrschema.neuetabelle (
…
);
post­gres­ql

Schauen wir uns das an einem Beispiel an: Zuerst erstellen wir das Schema „Kunden“:

CREATE SCHEMA Kunden;
post­gres­ql

Danach legst du die Tabelle „Kun­den­lis­te_Oes­ter­reich“ an und ordnest sie dem Schema „Kunden“ zu:

CREATE TABLE Kunden.Kundenliste_Deutschland(
ID INT PRIMARY KEY NOT NULL,
NAME VARCHAR(50) NOT NULL,
LAND VARCHAR(50),
ADRESSE VARCHAR(255)
);
post­gres­ql

Jetzt hast du eine leere Tabelle im ge­wünsch­ten Schema und kannst sie mit Post­greS­QL INSERT INTO mit deinen Daten befüllen.

Hinweis

Gibst du kein Schema an, landet deine neue Tabelle au­to­ma­tisch im Standard-Schema „public“.

Schema löschen mit DROP SCHEMA

Du kannst ein Schema natürlich auch jederzeit wieder entfernen. Ist es bereits leer, reicht der Befehl DROP SCHEMA. Für unser Beispiel sieht das so aus:

DROP SCHEMA Kunden;
post­gres­ql

Willst du ein Schema samt aller ent­hal­te­nen Tabellen und Objekte löschen, nutzt du diesen Befehl:

DROP SCHEMA Kunden CASCADE;
post­gres­ql
Zum Hauptmenü