Einführung
Wenn du mit Aufgaben der Datenbankverwaltung zu tun hast, etwa Tabellen anlegen, Beziehungen ansehen oder sogar Reports erstellen, kann es sehr nützlich sein, das information_schema von PostgreSQL zu verstehen. In diesem Tutorial schauen wir uns die Grundlagen des PostgreSQL information_schema mit einigen Codebeispielen an.
Dieses Tutorial ist in erster Linie für PostgreSQL geschrieben, einige Konzepte lassen sich aber auch auf andere relationale SQL-Datenbanken übertragen.
Bevor du weiterliest, möchte ich dir kurz unseren modernen und schnellen PostgreSQL-Datenbankmanager Beekeeper Studio vorstellen. Damit erkundest du Schemas im Handumdrehen, und für PostgreSQL ist er kostenlos – hier herunterladen.
Was ist das Information_Schema?
Das information_schema ist ein zentrales Feature von PostgreSQL-Datenbanken, das Zugriff auf die Metadaten der „aktuellen Datenbank“ bietet. Im Grunde ist es eine Sammlung von Views mit Informationen über verschiedene Objekte in der „aktuellen Datenbank“. Von Tabellen über Spalten bis hin zu Constraints liefert das information_schema von PostgreSQL die Details zur Architektur einer Datenbank.
SELECT *
FROM information_schema.tables;
Wenn du den obigen Befehl zum Beispiel im SQL-Editor von Beekeeper Studio ausführst, solltest du eine Liste der Tabellen in deiner aktuellen Datenbank sehen.
Tiefer einsteigen
Öffentliche Tabellen anzeigen
Um alle verfügbaren öffentlichen Tabellen in deiner aktuellen Datenbank aufzulisten, führst du einfach Folgendes aus:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
Dieser Befehl gibt eine Liste aller Tabellennamen im Schema „public“ deiner „aktuellen Datenbank“ zurück.
Ausgabe mit der Beispieldatenbank „chinook“
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
Spalten untersuchen
Mit der View information_schema.columns kannst du detaillierte Informationen über die Spalten einer bestimmten Tabelle abrufen:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
Dieser Code gibt eine Liste aller Spaltennamen und ihrer Datentypen für die ausgewählte Tabelle zurück.
Ausgabe mit der Beispieldatenbank „chinook“
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
Constraints anzeigen
Die View information_schema.table_constraints liefert Informationen über die in der Tabelle definierten Constraints.
Mit folgender Abfrage kannst du die Constraints einer bestimmten Tabelle abrufen:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
Der Befehl gibt die Namen und Typen der Constraints für „your_table“ aus und zeigt dir so, welche Regeln für diese Tabelle gelten.
Ausgabe mit der Beispieldatenbank „chinook“
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
Fazit
Das information_schema von PostgreSQL ist ein wichtiges Werkzeug, um die Struktur und die Details deiner Datenbank zu erkunden und zu verstehen. Wie du es nutzt, hängt von deinen konkreten Anforderungen und deiner Datenbankkonfiguration ab. Denk daran, die Beispieltabellen und -spaltennamen durch die deiner Datenbank zu ersetzen, damit die Beispielbefehle korrekt funktionieren.
Hinweis: Alle Beispiele in diesem Tutorial sind für PostgreSQL (Versionen 9.4 bis 13.3) gedacht und funktionieren möglicherweise nicht mit anderen Datenbank-Engines. Passe deine Abfragen immer an die Datenbank-Engine an, die du verwendest. Das information_schema von PostgreSQL kann das Erkunden deiner Datenbank einfacher, effektiver und deutlich weniger zeitaufwendig machen.
Beekeeper Studio ist eine kostenlose & Open-Source-PostgreSQL-GUI
Das ist der PostgreSQL-Client, nach dem ich gesucht habe! Die Oberfläche hebt ihn ab: aufgeräumt, intuitiv, leistungsstark. Tschüss, klobiges PGAdmin. - David Cyprian
Beekeeper Studio ist ein schneller, intuitiver und einfach zu bedienender PostgreSQL-Client. Er unterstützt auch viele weitere Datenbanken und läuft super unter Windows, Mac und Linux.
Was PostgreSQL-Nutzer über Beekeeper Studio sagen
Anders als pgAdmin ist Beekeeper bemerkenswert einfach zu bedienen, ohne dass Funktionen fehlen – und der Preis stimmt! Besonders nützlich ist die Backup-Funktion für Datenbanken. Einfach großartige Software.
Fantastisches Tool, die praktischste IDE, die ich bisher für die Administration von Postgres- und MySql-Datenbanken gefunden habe – funktioniert einfach, ganz ohne Aufwand :-)