PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So listen Sie Datenbanken und Tabellen in PostgreSQL mit psql auf

Wenn es um die Verwaltung von Postgres-Datenbanken geht, gibt es eine Vielzahl von Tools von Drittanbietern wie SQL Workbench/J oder pgAdmin III. Postgres selbst wird jedoch mit einem leistungsstarken Befehlszeilentool namens psql geliefert Das ist großartig für diejenigen, die mit dem Terminal vertraut sind oder Verwaltungsaufgaben skripten möchten. Eine der häufigsten Aufgaben eines Datenbankadministrators besteht darin, sich einfach mit der Umgebung vertraut zu machen. Dazu gehören Fragen wie „Welche Datenbanken befinden sich auf diesem Server?“. oder „Welche Tabellen sind in einer bestimmten Datenbank auf diesem Server gespeichert?“. In diesem Tutorial lernen wir, wie Sie diese Schlüsselfragen von der Befehlszeile aus mit psql beantworten .

Meta-Befehle

Zusätzlich zur Möglichkeit, rohe SQL-Abfragen über psql an den Server zu senden Sie können auch psql nutzen Metabefehle, um Informationen vom Server zu erhalten. Meta-Befehle sind Befehle, die von psql ausgewertet werden und oft in SQL übersetzt, das für die Systemtabellen auf dem Server ausgegeben wird, wodurch Administratoren Zeit bei der Durchführung von Routineaufgaben sparen. Sie werden durch einen umgekehrten Schrägstrich gekennzeichnet, gefolgt vom Befehl und seinen Argumenten. Wir werden unten einige Beispiele dafür sehen.

Datenbanken auflisten

Ein einzelner Postgres-Serverprozess kann mehrere Datenbanken gleichzeitig verwalten. Jede Datenbank wird als separater Dateisatz in einem eigenen Verzeichnis innerhalb des Datenverzeichnisses des Servers gespeichert. Um alle definierten Datenbanken auf dem Server anzuzeigen, können Sie \list verwenden meta-Befehl oder seine Abkürzung \l .

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 sales     | ubuntu   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

Datenbanken wechseln

Die meisten Postgres-Server haben standardmäßig drei Datenbanken definiert:template0 , template1 und postgres . template0 und template1 sind Skelettdatenbanken, die von CREATE DATABASE verwendet werden oder verwendet werden können Befehl. postgres ist die Standarddatenbank, zu der Sie eine Verbindung herstellen, bevor Sie andere Datenbanken erstellt haben. Sobald Sie eine andere Datenbank erstellt haben, möchten Sie zu dieser wechseln, um Tabellen zu erstellen und Daten einzufügen. Wenn Sie mit Servern arbeiten, die mehrere Datenbanken verwalten, müssen Sie häufig zwischen Datenbanken wechseln. Dies kann mit dem \connect erfolgen meta-Befehl oder seine Abkürzung \c .

postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#

Listentabellen

Sobald Sie sich mit einer Datenbank verbunden haben, möchten Sie überprüfen, welche Tabellen dort erstellt wurden. Dies kann mit dem \dt erfolgen Meta-Befehl. Wenn jedoch keine Tabellen vorhanden sind, erhalten Sie keine Ausgabe.

sales=# \dt
No relations found.
sales=#

Nachdem eine Tabelle erstellt wurde, wird sie in einer tabellarischen Liste der erstellten Tabellen zurückgegeben.

sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
        List of relations
 Schema | Name  | Type  | Owner
--------+-------+-------+--------
 public | leads | table | ubuntu
(1 row)

sales=#