PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

2 façons d'afficher toutes les bases de données dans PostgreSQL (psql)

Voici quelques façons d'afficher une liste de bases de données lors de l'utilisation de psql avec PostgreSQL.

La première option peut être utilisée lorsque nous sommes déjà connectés à PostgreSQL. La deuxième option peut être utilisée lorsque nous n'avons pas actuellement de connexion à Postgres.

Le \l et \list Commandes

Nous pouvons utiliser soit \l ou \list pour renvoyer une liste de bases de données.

La syntaxe ressemble à ceci :

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

Les parties entre crochets [] sont facultatifs.

Ainsi, le moyen le plus rapide/le plus simple d'obtenir une liste de bases de données est le suivant :

\l

Exemple de résultat :

                                    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 |
+--------------+----------+----------+-------------+-------------+-----------------------+

Juste pour être clair, j'ai exécuté cette commande alors que j'étais déjà connecté à PostgreSQL.

Le même résultat peut être obtenu en utilisant \list au lieu de \l .

On peut ajouter un signe plus (+ ) pour renvoyer plus d'informations sur chaque table :

\l+

Exemple de résultat :

                                                                      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 |         |            |                                            |
+--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+

Nous obtenons donc quelques colonnes supplémentaires avec des informations sur la taille, l'espace de table, etc.

Nous pouvons également utiliser un modèle pour renvoyer uniquement les bases de données qui correspondent au modèle :

\l krank*

Exemple de résultat :

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

Le -l et --list Options de connexion

Lorsque nous ne sommes pas actuellement connectés à Postgres, nous pouvons nous connecter en utilisant le -l ou --list possibilité de connexion.

Lorsqu'une de ces options est spécifiée, psql se connectera à Postgres, listera toutes les bases de données disponibles, puis quittera.

Il peut être utilisé des manières suivantes :

-l
--list

Ainsi, au lieu d'utiliser la barre oblique inverse, il s'agit soit d'un trait d'union, soit de deux traits d'union (selon celui que vous utilisez).

Pour utiliser cette option, ouvrez une nouvelle fenêtre de terminal ou une invite de commande et tapez ce qui suit :

psql -l

En supposant qu'il se trouve dans votre variable PATH, cela devrait lancer PostgreSQL, répertorier toutes les bases de données, puis quitter.

Exemple de résultat :

                                   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

La même chose peut être appliquée en utilisant --list :

psql --list