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.
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.
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;
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.
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.
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)
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.
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.