Bagaimana cara menampilkan semua database dan tabel menggunakan psql?

Saya mencoba untuk belajar PostgreSQL administrasi dan telah mulai belajar bagaimana menggunakan psql command line tool.

Ketika saya log in dengan psql --username=postgres, bagaimana cara menampilkan semua database dan tabel?

Saya telah mencoba \d, d dan dS+ tapi tidak ada yang terdaftar. Saya telah menciptakan dua database dan beberapa tabel dengan pgAdmin III, jadi saya tahu mereka harus tercantum.

Mengomentari pertanyaan (2)
Larutan

Perhatikan perintah berikut:

  • \list atau \l: daftar semua database
  • \dt: daftar semua tabel dalam database saat ini.

Anda tidak akan pernah melihat tabel di database lain, tabel ini tidak't terlihat. Anda harus terhubung ke database yang benar untuk melihat tabel (dan benda-benda lainnya).

Untuk beralih database:

\menghubungkan database_name atau \c database_name

Lihat manual tentang psql.

Komentar (8)

Ini daftar database:

SELECT datname FROM pg_database
WHERE datistemplate = false;

Ini daftar tabel dalam database saat ini.

SELECT table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name;
Komentar (6)

Di Postgresql ini perintah terminal daftar database yang tersedia

el@defiant$ /bin/psql -h localhost --username=pgadmin --list

Atau perintah yang menyatakan lebih sederhana:

psql -U pgadmin -l

Perintah-perintah ini pada terminal:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 kurz_prod | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 pgadmin   | pgadmin  | 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
(5 rows)

Ini adalah database yang tersedia.

Dalam PSQL perintah ini daftar tabel yang tersedia

Anda harus menentukan database sebelum anda bisa daftar tabel dalam database tersebut.

el@defiant$ psql -U pgadmin -d kurz_prod

Ini akan membawa anda ke sebuah psql terminal:

kurz_prod=#

Gunakan perintah \d yang berarti menampilkan semua tabel, pandangan, dan urutan

kurz_prod=# \d

Cetakan ini:

           List of relations
Schema |  Name   |   Type   |  Owner
--------+---------+----------+---------
public | mytable | table    | pgadmin
public | testing | sequence | pgadmin
(2 rows)

Kemudian, untuk keluar dari psql terminal, ketik \t dan tekan enter. Atau Ctrl-D melakukan hal yang sama. Ini adalah tabel dalam database tersebut.

Komentar (2)

\l adalah kependekan dari \list. Ada beberapa slash perintah, yang dapat anda daftar di psql dengan menggunakan \?.

Komentar (0)

Untuk mendapatkan info lebih lanjut tentang database dan daftar tabel, Anda dapat melakukan :

\l+ untuk melihat daftar database

                                                                    List of databases
    Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description
------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
 pgbench    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 29 MB   | pg_default |
 postgres   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 6073 kB | pg_default | default administrative connection database
 slonmaster | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1401 MB | movespace  |
 slonslave  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 32 MB   | pg_default |
 template0  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5785 kB | pg_default | unmodifiable empty database
            |          |          |             |             | postgres=CTc/postgres |         |            |
 template1  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5985 kB | pg_default | default template for new databases
            |          |          |             |             | postgres=CTc/postgres |         |            |
 test       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 13 MB   | pg_default |
(7 rows)

dan

\d+ untuk menampilkan semua tabel dalam saat ini search_path schema di database saat ini.

test=# \dn+ --list schemas
                          List of schemas
  Name  |  Owner   |  Access privileges   |      Description       
--------+----------+----------------------+------------------------
 public | postgres | postgres=UC/postgres+| standard public schema
        |          | =UC/postgres         | 
schema1 | postgres | postgres=UC/postgres+| 
        |          | =UC/postgres         | 
(2 row)

test=# set search_path to schema1, public;
SET
test=# \d+
                                  List of relations
     Schema  |      Name       | Type  |    Owner     |    Size    | Description
    ---------+-----------------+-------+--------------+------------+-------------
     public  | all_units       | table | postgres     | 0 bytes    |
     public  | asset           | table | postgres     | 16 kB      |
     public  | asset_attribute | table | postgres     | 8192 bytes |
     public  | food            | table | postgres     | 48 kB      |
     public  | name_log        | table | postgres     | 8192 bytes |
     public  | outable         | table | ordinaryuser | 0 bytes    |
     public  | outable2        | table | ordinaryuser | 0 bytes    |
     public  | test            | table | postgres     | 16 kB      |
     public  | usr             | table | postgres     | 5008 kB    |
     schema1 | t1              | table | postgres     | 0 bytes    |
    (10 rows)
Komentar (0)

Dari pg_Admin anda hanya dapat menjalankan perintah berikut pada database anda saat ini dan akan mendapatkan semua tabel yang ditentukan skema:

SELECT * 
FROM information_schema.tables 
WHERE table_type = 'BASE TABLE' 
    AND table_schema = 'public' 
ORDER BY table_type, table_name

Ini akan membuat anda mendapatkan daftar semua permanen tabel (umumnya meja anda'kembali mencari). Anda bisa mendapatkan hanya nama tabel jika anda mengubah * wildcard untuk hanya table_name. Publik table_schema adalah default schema untuk database yang paling kecuali admin telah menyiapkan skema baru.

Komentar (2)

Adalah mungkin bahwa anda telah memasukkan tabel ke dalam skema yang tidak di jalur pencarian, atau default, yaitu, publik dan sehingga tabel tidak akan muncul menggunakan \dt. Jika anda menggunakan skema yang disebut, mengatakan, data, anda dapat memperbaikinya dengan berjalan,

alter database <databasename> set search_path=data, publik;

Keluar dan masuk kembali psql dan sekarang \dt akan menampilkan tabel dalam skema data.

Komentar (3)