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

2 Möglichkeiten, alle Datenbanken in PostgreSQL (psql) anzuzeigen

Hier sind ein paar Möglichkeiten, eine Liste von Datenbanken anzuzeigen, wenn Sie psql verwenden mit PostgreSQL.

Die erste Option kann verwendet werden, wenn wir bereits mit PostgreSQL verbunden sind. Die zweite Option kann verwendet werden, wenn wir derzeit keine Verbindung zu Postgres haben.

Der \l und \list Befehle

Wir können entweder \l verwenden oder \list um eine Liste von Datenbanken zurückzugeben.

Die Syntax lautet wie folgt:

\l[+] or \list[+] [ pattern ]

Die Teile in eckigen Klammern [] sind optional.

Der schnellste/einfachste Weg, um eine Liste der Datenbanken zu erhalten, ist also wie folgt:

\l

Beispielergebnis:

                                    List of databases
+--------------+----------+----------+-------------+-------------+-----------------------+
|     Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |
+--------------+----------+----------+-------------+-------------+-----------------------+
| barney       | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       |
| krankykranes | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       |
| music        | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       |
| pagila       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       |
| pethotel     | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       |
| postgres     | postgres | 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 |
+--------------+----------+----------+-------------+-------------+-----------------------+

Nur um das klarzustellen, ich habe diesen Befehl ausgeführt, als ich bereits mit PostgreSQL verbunden war.

Dasselbe Ergebnis kann mit \list erzielt werden statt \l .

Wir können ein Pluszeichen hinzufügen (+ ), um weitere Informationen zu jeder Tabelle zurückzugeben:

\l+

Beispielergebnis:

                                                                      List of databases
+--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+
|     Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description                 |
+--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+
| barney       | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8473 kB | pg_default |                                            |
| krankykranes | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8289 kB | pg_default |                                            |
| music        | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8225 kB | pg_default |                                            |
| pagila       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 16 MB   | pg_default |                                            |
| pethotel     | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8177 kB | pg_default |                                            |
| postgres     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8097 kB | pg_default | default administrative connection database |
| template0    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 7905 kB | pg_default | unmodifiable empty database                |
|              |          |          |             |             | postgres=CTc/postgres |         |            |                                            |
| template1    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 7905 kB | pg_default | default template for new databases         |
|              |          |          |             |             | postgres=CTc/postgres |         |            |                                            |
+--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+

Wir bekommen also ein paar zusätzliche Spalten mit Informationen über Größe, Tablespace usw.

Wir können auch ein Muster verwenden, um nur die Datenbanken zurückzugeben, die dem Muster entsprechen:

\l krank*

Beispielergebnis:

                                  List of databases
+--------------+----------+----------+-------------+-------------+-------------------+
|     Name     |  Owner   | Encoding |   Collate   |    Ctype    | Access privileges |
+--------------+----------+----------+-------------+-------------+-------------------+
| krankykranes | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                   |
+--------------+----------+----------+-------------+-------------+-------------------+

Das -l und --list Verbindungsoptionen

Wenn wir gerade nicht mit Postgres verbunden sind, können wir uns mit -l verbinden oder --list Anschlussmöglichkeit.

Wenn eine dieser Optionen angegeben wird, psql stellt eine Verbindung zu Postgres her, listet alle verfügbaren Datenbanken auf und beendet sich dann.

Es kann auf folgende Weise verwendet werden:

-l
--list

Anstelle des umgekehrten Schrägstrichs ist es also entweder ein Bindestrich oder zwei Bindestriche (je nachdem, welchen Sie verwenden).

Um diese Option zu verwenden, öffnen Sie ein neues Terminalfenster oder eine Eingabeaufforderung und geben Sie Folgendes ein:

psql -l

Angenommen, es befindet sich in Ihrer PATH-Variablen, die PostgreSQL starten, alle Datenbanken auflisten und dann beenden sollte.

Beispielergebnis:

                                   List of databases
     Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
--------------+----------+----------+-------------+-------------+-----------------------
 barney       | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 krankykranes | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 music        | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 pagila       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 pethotel     | barney   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres     | postgres | 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

Dasselbe kann mit --list angewendet werden :

psql --list