20  PostgreSQL

PostgreSQL, oft ausgesprochen als “Post-gress-Q-L”, ist ein relationales Datenbankmanagementsystem (RDBMS), das für seine Robustheit und seine Fähigkeiten zur Verwaltung komplexer Datenoperationen bekannt ist.

pgAdmin4 ist das offizielle grafische Verwaltungstool für PostgreSQL und bietet eine benutzerfreundliche Oberfläche für die Datenbankverwaltung. Es wird als Teil der PostgreSQL-Installation installiert.

20.1 PostgreSQL-Installation in Windows

Die folgenden Schritte beschreiben die Installation des relationalen Datenbankmanagementsystems (RDBMS) PostgreSQL und des grafischen Verwaltungstools pgAdmin 4:

  1. PostgreSQL herunterladen und installieren
    • PostgreSQL von dieser Website herunterladen.
    • Das Installationsprogramm für Windows auswählen und den Download starten.
    • Nach dem Download das Installationsprogramm ausführen.
  2. Standard-Installationsverzeichnis auswählen
    • Im Installationsassistenten auf “Next” klicken.
    • Das vorgeschlagene Standard-Installationsverzeichnis akzeptieren oder ein eigenes Verzeichnis wählen und auf “Next” klicken.
  3. Komponenten auswählen
    • Folgende Komponenten auswählen:
      • PostgreSQL Server
      • pgAdmin 4
      • Kommandozeilenwerkzeuge
    • Auf “Next” klicken.
  4. Verzeichnis für die Dateninstallation auswählen
    • Das vorgeschlagene Datenverzeichnis akzeptieren oder ein eigenes Verzeichnis wählen und auf “Next” klicken.
  5. Passwort setzen
    • Ein Passwort für den PostgreSQL Superuser (Postgres) eingeben und bestätigen.
    • Auf “Next” klicken.
  6. Port akzeptieren
    • Den standardmäßig vorgeschlagenen Port (üblicherweise 5432) akzeptieren und auf “Next” klicken.
  7. Gebietsschema setzen
    • Das Gebietsschema auf das Standardgebietsschema setzen und auf “Next” klicken.
  8. Installation abschließen
    • Die Einstellungen überprüfen und auf “Next” klicken, um die Installation zu starten.
    • Nach Abschluss der Installation auf “Finish” klicken.

20.2 PostgreSQL-Installation auf Mac

Die folgenden Schritte beschreiben die Installation des relationalen Datenbankmanagementsystems (RDBMS) PostgreSQL und des grafischen Verwaltungstools pgAdmin 4:

  1. PostgreSQL herunterladen und installieren
    • PostgreSQL von dieser Website herunterladen.
    • Das Installationsprogramm für MacOS auswählen und den Download starten.
    • Nach dem Download die Installationsdatei (dmg-Datei) öffnen.
  2. Installationsprogramm starten
    • Das PostgreSQL-Symbol in den Anwendungsordner ziehen, um die Installation zu starten.
    • Den Anwendungsordner öffnen und das PostgreSQL-Installationsprogramm starten.
  3. Komponenten auswählen
    • Folgende Komponenten auswählen:
      • PostgreSQL Server
      • pgAdmin 4
      • Kommandozeilenwerkzeuge
    • Auf “Next” klicken.
  4. Verzeichnis für die Dateninstallation auswählen
    • Das vorgeschlagene Datenverzeichnis akzeptieren oder ein eigenes Verzeichnis wählen und auf “Next” klicken.
  5. Passwort setzen
    • Ein Passwort für den PostgreSQL Superuser (Postgres) eingeben und bestätigen.
    • Auf “Next” klicken.
  6. Port akzeptieren
    • Den standardmäßig vorgeschlagenen Port (üblicherweise 5432) akzeptieren und auf “Next” klicken.
  7. Gebietsschema setzen
    • Das Gebietsschema auf das Standardgebietsschema setzen und auf “Next” klicken.
  8. Installation abschließen
    • Die Einstellungen überprüfen und auf “Next” klicken, um die Installation zu starten.
    • Nach Abschluss der Installation auf “Finish” klicken.

20.3 Server in pgAdmin4 einrichten

Um Datenbanken zu verwalten, ist es notwendig, sich zunächst mit einer PostgreSQL-Instanz zu verbinden. Dies geschieht durch das Einrichten einer neuen Serververbindung in pgAdmin4:

  1. pgAdmin4 öffnen.

  2. Unter “Quick Links” auf “Add New Server” klicken.

  3. Als Namen local-connection eingeben.

  4. Zum Reiter “Connection” wechseln:

    • Hostname/Adresse: “localhost” eingeben.
    • Sicherstellen, dass der Port derselbe ist wie bei der Installation (üblicherweise 5432).
    • Passwort: Das während der Installation gesetzte Passwort eingeben und “Save password” wählen.
  5. Die Einrichtung durch Klicken auf Save bestätigen.

  6. Die local-connection wird nun in der linken Seitenleiste angezeigt.

20.4 SQL-Basics in PostgreSQL

Im Folgenden werden einige typische Aufgaben in PgAdmin4 behandelt, die bei der Arbeit mit Datenbanken anfallen.

20.4.1 Datenbank erstellen

Der nächste Schritt ist die Erstellung einer neuen Datenbank zur Datenspeicherung:

Bei der Installation von PostgreSQL wird automatisch eine Standarddatenbank namens “postgres” erstellt. Diese Datenbank wird typischerweise für administrative Zwecke und Tests verwendet. Es ist immer ratsam, neue Datenbanken für anwendungsspezifische Daten zu erstellen, um zu vermeiden, dass die Standarddatenbank mit Anwendungsdaten überladen wird.

  1. In pgAdmin4 mit der rechten Maustaste auf den “local-connection” Server in der linken Seitenleiste klicken.

  2. Zu Create > Database navigieren.

  3. Im Reiter “General” db_data als Datenbanknamen eingeben.

  4. Auf Save klicken, um die Datenbank zu erstellen.

20.4.2 Tabelle erstellen

Nun wird eine Tabelle erstellt. Wir nutzen als Beispiel die Daten einer Marketingkampagne.

  • id: Eine eindeutige Kennung für jede Kampagne, automatisch inkrementiert.
  • name: Der Name der Marketingkampagne.
  • start_date & end_date: Der Zeitraum der Kampagne.
  • budget: Das der Kampagne zugewiesene Budget.
  • channel: Der für die Kampagne verwendete Kanal (z.B. “E-Mail”, “Soziale Medien”, “TV”).
  1. Zur db_data Datenbank navigieren.

  2. Das Abfragewerkzeug unter Tools > Query Tool öffnen.

  3. Den folgenden SQL-Befehl eingeben, um die campaigns Tabelle zu erstellen:

CREATE TABLE campaigns (
  id BIGSERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  start_date DATE,
  end_date DATE,
  budget DECIMAL(10, 2),
  channel VARCHAR(255)
);
  • id: Eine Spalte namens id, die den Datentyp BIGSERIAL verwendet, was ein automatisch inkrementierender Integer ist und sich für einen Primärschlüssel eignet.

  • name: Eine Spalte zur Speicherung von Kampagnennamen als Text, definiert, um eine Zeichenfolge von bis zu 255 Zeichen zu halten. Die NOT NULL-Einschränkung stellt sicher, dass jede Zeile einen Namen haben muss.

  • start_date und end_date: Diese Spalten speichern die Start- und Enddaten der Kampagnen jeweils im DATE-Datentyp.

  • budget: Eine Spalte für das mit jeder Kampagne verbundene Budget, die DECIMAL(10, 2) verwendet, um bis zu 10 Ziffern mit 2 Dezimalstellen zu ermöglichen.

  • channel: Eine Spalte, um das für die Kampagne verwendete Medium anzugeben, die Zeichenfolgen von bis zu 255 Zeichen speichern kann.

  1. Das Skript ausführen, indem auf die ▶️ Schaltfläche geklickt wird (oder F5 gedrückt wird).

  2. Um die Tabelle zu überprüfen, “Schemas” > “Tables” > “campaigns” > “Columns” in der Datenbank db_data erweitern.

20.4.3 Werte einfügen

Die Tabelle wird nun mit Beispieldaten gefüllt:

  1. Erneut das Abfragewerkzeug verwenden, um die folgende Einfügeanweisung auszuführen:
INSERT INTO campaigns (name, start_date, end_date, budget, channel) VALUES
('Winter Sale', '2023-12-01', '2023-12-31', 5000.00, 'Email'),
('Summer Festival', '2023-06-01', '2023-06-15', 10000.00, 'Social Media'),
('Back to School', '2023-08-01', '2023-08-20', 7500.00, 'TV');

:::{.callout-note collapse=“true” title=“Insert Statement Erklärung”} Dieser SQL-Befehl fügt Daten in die campaigns Tabelle ein. Jede Zeile von Werten entspricht einer anderen Marketingkampagne:

  • Erste Zeile: Fügt eine Kampagne namens “Winter Sale” ein, die vom 1. bis 31. Dezember 2023 läuft, mit einem Budget von 5000 Dollar und dem Kanal “Email”.

  • Zweite Zeile: Fügt “Summer Festival” ein, eine kürzere Kampagne vom 1. bis 15. Juni 2023, mit einem höheren Budget von 10000 Dollar und nutzt “Social Media”.

  • Dritte Zeile: Fügt die “Back to School”-Kampagne vom 1. bis 20. August 2023 hinzu, mit einem Budget von 7500 Dollar, vermarktet durch “TV”.

Jeder Satz von Werten ist in Klammern eingeschlossen und durch Kommata getrennt, um verschiedene Kampagnen zu unterscheiden. :::

  1. Das Skript ausführen, indem auf die ▶️ Schaltfläche geklickt wird.

20.4.4 Werte abrufen

Abschließend können die Daten in der campaigns Tabelle angezeigt werden:

  • Eine neue Sitzung im Abfragewerkzeug öffnen und eine SELECT-Abfrage ausführen:
SELECT * 
FROM campaigns;

Dieser SQL-Befehl ruft alle Spalten aus allen Zeilen der campaigns Tabelle ab. Er ist nützlich, um alle Daten zu sehen, die in die Tabelle eingegeben wurden, um sicherzustellen, dass die Einträge korrekt sind, und um weitere Datenanalysen oder Berichte zu erleichtern.

Dies sollte folgendes Ergebnis ausgeben:

id name start_date end_date budget channel
1 Winter Sale 2023-12-01 2023-12-31 5000.00 Email
2 Summer Festival 2023-06-01 2023-06-15 10000.00 Social Media
3 Back to School 2023-08-01 2023-08-20 7500.00 TV