sql >> Base de Datos >  >> RDS >> PostgreSQL

2 formas de mostrar todas las bases de datos en PostgreSQL (psql)

Aquí hay un par de formas de mostrar una lista de bases de datos al usar psql con PostgreSQL.

La primera opción se puede utilizar cuando ya estamos conectados a PostgreSQL. La segunda opción se puede usar cuando actualmente no tenemos una conexión a Postgres.

El \l y \list Comandos

Podemos usar \l o \list para devolver una lista de bases de datos.

La sintaxis es así:

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

Las partes entre corchetes [] son opcionales.

Entonces, la forma más rápida/fácil de obtener una lista de bases de datos es así:

\l

Resultado de ejemplo:

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

Para que quede claro, ejecuté ese comando cuando ya estaba conectado a PostgreSQL.

Se puede obtener el mismo resultado usando \list en lugar de \l .

Podemos agregar un signo más (+ ) para obtener más información sobre cada tabla:

\l+

Resultado de ejemplo:

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

Entonces obtenemos algunas columnas adicionales con información sobre el tamaño, el espacio de tabla, etc.

También podemos usar un patrón para devolver solo aquellas bases de datos que coincidan con el patrón:

\l krank*

Resultado de ejemplo:

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

El -l y --list Opciones de conexión

Cuando no estamos actualmente conectados a Postgres, podemos conectarnos usando -l o --list opción de conexión

Cuando se especifica una de estas opciones, psql se conectará a Postgres, enumerará todas las bases de datos disponibles y luego saldrá.

Se puede utilizar de las siguientes maneras:

-l
--list

Entonces, en lugar de usar la barra invertida, es un guión o dos guiones (dependiendo de cuál use).

Para usar esta opción, abra una nueva ventana de terminal o símbolo del sistema y escriba lo siguiente:

psql -l

Suponiendo que esté en su variable PATH, eso debería iniciar PostgreSQL, enumerar todas las bases de datos y luego salir.

Resultado de ejemplo:

                                   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

Lo mismo se puede aplicar usando --list :

psql --list