PostgreSQL ist nicht nur eine klassische SQL-Datenbank – es ist ein
Framework für Datenverarbeitung.
Du kannst neue Datentypen, Funktionen und sogar eigene Programmiersprachen hinzufügen.
🔹 Erweiterungen verwalten
Alle installierbaren Erweiterungen anzeigen:
dx
Eine Erweiterung aktivieren:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
👉 Erweiterungen sind wie
Plugins, die zusätzliche Features bereitstellen.
🔹 JSON & JSONB
Postgres unterstützt JSON-Daten von Haus aus – MySQL nur eingeschränkt.
Tabelle mit JSONB
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
data JSONB
);
Daten einfügen
INSERT INTO users (name, data)
VALUES ('Anna', '{"stadt": "Berlin", "alter": 29}');
Daten abfragen
SELECT name, data->>'stadt' AS stadt
FROM users
WHERE data->>'alter' = '29';
👉 JSONB speichert Daten
binär & effizient – schneller als reines JSON.
🔹 Arrays
Postgres kann Arrays direkt speichern:
CREATE TABLE produkte (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
tags TEXT[]
);
Einfügen:
INSERT INTO produkte (name, tags)
VALUES ('Laptop', '{"Elektronik","Computer","Mobil"}');
Abfragen:
SELECT * FROM produkte WHERE 'Computer' = ANY(tags);
🔹 UUIDs (Universally Unique Identifier)
UUIDs sind eindeutige IDs über Systeme hinweg – oft besser als
SERIAL.
Erweiterung aktivieren:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Tabelle mit UUID:
CREATE TABLE kunden (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(100)
);
🔹 PostGIS (Geodaten)
PostGIS macht PostgreSQL zu einem
Geodaten-GIS-System.
Damit kannst du Standorte, Karten und Entfernungen speichern und berechnen.
Beispiel:
CREATE EXTENSION postgis;
Tabelle mit Geodaten:
CREATE TABLE orte (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
position GEOGRAPHY(Point, 4326)
);
👉 Damit kannst du Abfragen wie "Alle Orte im Umkreis von 10 km" machen.
🔹 Eigene Funktionen schreiben
Mit PL/pgSQL (Postgres’ eigener Sprache) kannst du Funktionen schreiben:
CREATE OR REPLACE FUNCTION verdoppeln(x INT)
RETURNS INT AS $$
BEGIN
RETURN x * 2;
END;
$$ LANGUAGE plpgsql;
Test:
SELECT verdoppeln(5);
👉 Ergebnis:
10
🔹 Unterschiede zu MySQL/MariaDB
- PostgreSQL hat mehr Datentypen (JSONB, Arrays, Geodaten).
- Erweiterungen wie PostGIS machen Postgres einzigartig.
- MySQL ist einfacher, aber weniger flexibel.
🔹 Übungen
- Erstelle eine Tabelle
users mit einer Spalte data JSONB und speichere zusätzliche Infos (Alter, Stadt).
- Füge einen Benutzer mit JSON-Daten ein und frage die Stadt ab.
- Lege eine Tabelle mit
tags TEXT[] an und suche nach einem bestimmten Tag.
- Bonus: Aktiviere
uuid-ossp und erstelle eine Tabelle mit UUID-Primärschlüssel.
✅ Zusammenfassung
- PostgreSQL unterstützt JSONB, Arrays und UUIDs direkt.
- Erweiterungen wie uuid-ossp oder PostGIS erweitern die Datenbank enorm.
- Eigene Funktionen mit PL/pgSQL ermöglichen komplexe Logik in der Datenbank.
- Postgres ist dadurch flexibler und mächtiger als MySQL/MariaDB.
👉
Im nächsten Kapitel lernst du, wie man Backups &
Restore in PostgreSQL macht – ein absolutes Muss für Admins.
📚 Inhaltsverzeichnis
👉
psql Kapitel 1: Installation & Anmeldung mit psql
👉
psql Kapitel 2: Benutzer & Rollen in PostgreSQL
👉
psql Kapitel 3: Datenbanken & Tabellen erstellen
👉
psql Kapitel 4: CRUD-Befehle (SELECT, INSERT, UPDATE, DELETE)
👉
psql Kapitel 5: Schlüssel & Constraints in PostgreSQL
👉
psql Kapitel 6: Indizes & Performance
👉
psql Kapitel 7: Erweiterungen & Spezialfunktionen
👉
psql Kapitel 8: Backups & Restore in PostgreSQL
⭐ Bonus-Kapitel
👉
psql Kapitel 9 (Bonus): Admin-Tipps & Best Practices für PostgreSQL