psql Tricks

Database

psql ist wohl bei weitem das beliebteste Tool für die Administration von PostgreSQL. Sein großer Vorteil ist, dass es bei der Installation von PostgreSQL bereits enthalten ist. Es ist für Linux Kenner intuitiv handhabbar und enthält viele aus der Shell bekannte und nützliche Funktionen. Zehn hilfreiche Funktionen, mit denen man sich die Administration vereinfachen kann, zeige ich nun hier auf.

Query Tagging

psql unterstützt die Suche mit CTRL+R nach vorher ausgeführten Queries. Dies kann man generell für das schnellere Finden von beliebten Queries nutzen. Einer Query kann man auch einen Kommentar mitgeben. Dieser dient dann als Tag für die erleichterte Suche.

In der Regel reichen 2 – 3 Buchstaben, um die getaggte Query zu finden.

Meta-Befehl Queries anzeigen

Eine ganze Reihe von Meta-Befehlen ermöglicht das komfortable Abfragen von Datenbank- und Objektinformationen. Dabei kann man sich auch anzeigen lassen, welches SQL Statement ein Meta-Befehl für die Abfrage aus den Katalogen nutzt. Diese Funktion wird über den Befehl "\set ECHO_HIDDEN on" aktiviert.

Query Ausführungszeit

Die Dauer der Ausführungszeit einer Query kann bequem in psql angezeigt werden. Mit dem Befehl "\timing" lässt sich diese Funktion an- bzw. ausschalten.

Sichtbarkeit von NULL

Standardmäßig ist in psql beim Anzeigen von Feldinhalten kein Unterschied zwischen einem leeren String und NULL. Dies lässt sich mit "\pset null NULLSTRING" ändern.

Automatische Query Wiederholung

Manchmal möchte man eine Query öfters ausführen, um Zustandsänderungen zu verfolgen. psql bietet hierfür den watch-Befehl gefolgt von dem Intervallwert in Sekunden.

Die automatische Ausführung lässt sich durch CTRL+C wieder beenden.

Unicode Table Style

Die tabellarische Standardanzeige von z.B. Tabellen lässt sich individuell anpassen. Dabei lassen sich sowohl der Linienstil als auch der Rahmenstil anpassen.

Shellbefehle aufrufen

Aus psql heraus können Shell Befehle aufgerufen werden. Ein Beenden und hin und her springen zwischen psql und der Shell ist somit überflüssig. Der Befehl beginnt mit "\! <cmd>".

Integrierte Syntax Referenz

Beim Schreiben von SQL Statements kommt man manchmal in die missliche Lage, dass man die richtige Syntax eines Befehls vergessen hat. Das ist mit psql kein Problem, da über den Befehl "\h <sql_cmd>" die jeweilige Syntax direkt angezeigt wird. Zusätzlich ist auch die Referenz URL auf die PostgreSQL Dokumentation beinhaltet, wenn man doch mehr lesen möchte.

Tabelle anzeigen

Normalerweise nutzt man hier das klassische SQL Statement "SELECT * FROM tablename;". Wenn man jetzt aber oft in Tabellen reinschaut, ohne Joins und Where-Bedingungen, kommen eine ganze Menge Tastenanschläge zusammen. Kürzer geht es mit dem Befehl "table <tablename>".

.psqlrc

Schlussendlich sind ein Teil der hier gezeigten Tricks nur während der aktuellen psql Session aktiv. Mit Hilfe der Datei ~/.psqlrc im Homeverzeichnis lassen sie sich aber dauerhaft einstellen, so dass der erneute Konfigurationsaufwand entfällt.

Dirk Aumueller Autor

Dirk Aumueller arbeitet als Associate Partner für die Proventa AG. Sein technologischer Schwerpunkt liegt bei Datenbankarchitekturen mit PostgreSQL sowie Data Management Lösungen mit Pentaho. Zusätzlich zu seinen Datenbanktransformations-Projekteinsätzen ist er regelmäßig als PostgreSQL Trainer unterwegs und betreut Studenten bei ihren Abschlussarbeiten. Seine fachlichen Erfahrungen erstrecken sich über die Branchen Telco und Financial Services.

Tags