sql >> Databasteknik >  >> RDS >> PostgreSQL

2 sätt att visa alla databaser i PostgreSQL (psql)

Här är ett par sätt att visa en lista över databaser när du använder psql med PostgreSQL.

Det första alternativet kan användas när vi redan är anslutna till PostgreSQL. Det andra alternativet kan användas när vi för närvarande inte har en anslutning till Postgres.

\l och \list Kommandon

Vi kan använda antingen \l eller \list för att returnera en lista med databaser.

Syntaxen ser ut så här:

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

Delarna inom hakparenteser [] är valfria.

Så det snabbaste/enklaste sättet att få en lista över databaser är så här:

\l

Exempelresultat:

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

Bara för att vara tydlig, körde jag det kommandot när jag redan var ansluten till PostgreSQL.

Samma resultat kan uppnås genom att använda \list istället för \l .

Vi kan lägga till ett plustecken (+ ) för att returnera mer information om varje tabell:

\l+

Exempelresultat:

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

Så vi får några extra kolumner med info om storlek, bordsyta etc.

Vi kan också använda ett mönster för att endast returnera de databaser som matchar mönstret:

\l krank*

Exempelresultat:

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

-l och --list Anslutningsalternativ

När vi för närvarande inte är anslutna till Postgres kan vi ansluta med -l eller --list anslutningsalternativ.

När ett av dessa alternativ är specificerat, psql kommer att ansluta till Postgres, lista alla tillgängliga databaser och avsluta.

Den kan användas på följande sätt:

-l
--list

Så istället för att använda omvänt snedstreck är det antingen ett bindestreck eller två bindestreck (beroende på vilken du använder).

För att använda det här alternativet, öppna ett nytt terminalfönster eller kommandotolk och skriv följande:

psql -l

Förutsatt att det finns i din PATH-variabel bör den starta PostgreSQL, lista alla databaser och sedan avsluta.

Exempelresultat:

                                   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

Detsamma kan tillämpas med --list :

psql --list

  1. Varför tillåter inte Oracle SQL oss att använda kolumnalias i GROUP BY-satser?

  2. SQL - Skapa vy från flera tabeller

  3. Hur man skapar en kolumn som inte är null i en vy

  4. SQL Server SMO klagar över att DLL saknas