PostgreSQL

Vorlesung im Herbsttrimester 2004

Datenbanken I

PostgreSQL


Für jeden Teilnehmer an der Vorlesung ist auf dem Rechner argonaut.informatik.unibw-muenchen.de (Linux-System> ein Account eingerichtet. Die Zugangsdaten sind jedem per E-Mail zugegangen.

Zum Einloggen in die Homeverzeichnisse

(auf argonaut.informatik.unibw-muenchen.de) wird SSH benötigt. Für Windows eignet sich dieser Client, da er neben dem Terminallogin auch eine Dateitransferumgebung bereitstellt. Für Unix-Systeme bietet sich OpenSSH an.

PostgreSQL

Als Datenbankmanagementsystem steht PostgreSQL zur Verfügung. PostgreSQL kann gleichzeitig mehrere unabhängige Datenbanken verwalten und verschiedene Benutzer unterscheiden. Für jeden Teilnehmer gibt es auf argonaut einen PostgreSQL-Benutzer und eine PostgreSQL-Datenbank. Der verwendete User- und Datenbank-Name ist mit dem Login-Namen identisch.

Die Datenbank kann mit der textuellen Shell psql genutzt werden, d.h., nach dem Einloggen auf argonaut gibt man in der textuellen Shell das Kommando psql ein und befindet sich dann im interaktiven Kommandomodus von psql und damit in der "eigenem" Datenbank. Am Bildschirm ist dann folgendes zu sehen:

db10@argonaut:~" psql
Welcome to psql 7.3.4, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
db10=>

Nach dem Prompt (hier db10=>) können SQL-Befehle und administrative Befehle an psql abgesetzt werden.

  • SQL-Befehle können sich über mehrere Zeilen erstrecken, die auch mit der Return umgebrochen werden k?nnen. Ein SQL-Befehl wird erst durch ein (Nicht vergessen!!) Semikolon (und natürlich einem anschließenden Return) abgeschlossen.

  • Die wichtigsten administrativen psql-Befehle werden von psql unmittelbar nach dem Aufruf genannt:

    • Verlassen von psql durch \q

      Nach dem Verlassen von psql bleibt (natürlich) der Datenbankinhalt erhalten, den man durch erneutes Starten von psql also unverändert vorfindet. Sogar die Historie der zuvor abgesetzten Befehle an psql bleibt erhalten. Mit den Cursortasten kann man durch diese hindurchblättern.

    • Auflisten aller psql-Befehle mit \?

    • Auflisten aller SQL-Befehle mit \h

    • Auflisten aller Tabellen etc. mit \d

    • Beschreibung einer Tabelle mit Namen xyz mit \d xyz.

    • Wenn in einer Textdatei file eine Datenbankbeschreibung etc. in Form mehrerer aufeinanderfolgender SQL-Anweisungen enthalten ist, kann mit \i file diese Datei eingelesen werden, wobei die enthaltenen SQL-Befehle unmittelbar ausgeführt werden.

Zuletzt sei noch auf die PostgreSQL-Dokumentation verwiesen, die auch eine ausführlichere Beschreibung von psql, aber natürlich auch den SQL-Sprachumfang von PostgreSQL beinhaltet.