Effiziente PostgreSQL-Datenbanken: Tabellen via Schema sauber gruppieren
Ein Schema dient in PostgreSQL dazu, Tabellen zu bündeln und deine Datenbank strukturiert zu halten. Mit dem Befehl CREATE SCHEMA legst du eines an, während du mit DROP SCHEMA ein bestehendes Schema ganz einfach wieder entfernst.
Was ist ein PostgreSQL-Schema?
In PostgreSQL versteht man unter einem Schema eine Sammlung mehrerer Tabellen. Zusätzlich kann es Indizes, Sequenzen, Datentypen und Funktionen bündeln. Man kann es sich wie einen Ordner vorstellen, wobei Verschachtelungen hier nicht möglich sind. Diese Struktur hilft dir dabei, selbst umfangreiche Datenbanken mit vielen Tabellen im Griff zu behalten. Innerhalb des Datenbankmanagementsystems ordnet sich das PostgreSQL-Schema zwischen der Datenbank und den Tabellen ein. Hier die Hierarchie im Überblick:
- Instanz (oft als „Server“ bezeichnet, verwaltet mehrere Datenbanken)
- Datenbank
- Schema
- Tabelle
- Zeile
Möchtest du ein neues Schema in PostgreSQL anlegen, nutzt du den Befehl CREATE SCHEMA. Mit DROP SCHEMA löschst du es wieder. In diesem Guide zeigen wir dir, wie beide Anweisungen funktionieren.
SCHEMA in PostgreSQL: Die Syntax
Die grundlegende Syntax für CREATE SCHEMA in PostgreSQL lautet:
CREATE SCHEMA name;postgresqlDamit startest du die Erstellung und vergibst einen Namen, der innerhalb deiner Datenbank nur einmal vorkommen darf.
Tabellen einem PostgreSQL-Schema zuordnen
Sobald du mit dem Befehl PostgreSQL CREATE TABLE eine Tabelle erstellst, kannst du sie direkt einem Schema zuweisen. Das sieht im Code so aus:
CREATE TABLE ihrschema.neuetabelle (
…
);postgresqlSchauen wir uns das an einem Beispiel an: Zuerst erstellen wir das Schema „Kunden“:
CREATE SCHEMA Kunden;postgresqlDanach legst du die Tabelle „Kundenliste_Oesterreich“ 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)
);postgresqlJetzt hast du eine leere Tabelle im gewünschten Schema und kannst sie mit PostgreSQL INSERT INTO mit deinen Daten befüllen.
Gibst du kein Schema an, landet deine neue Tabelle automatisch 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;postgresqlWillst du ein Schema samt aller enthaltenen Tabellen und Objekte löschen, nutzt du diesen Befehl:
DROP SCHEMA Kunden CASCADE;postgresql