Jawaban:
Dari psql
antarmuka baris perintah,
Pertama, pilih basis data Anda
\c database_name
Kemudian, ini menunjukkan semua tabel dalam skema saat ini:
\dt
Secara terprogram (atau dari psql
antarmuka juga, tentu saja):
SELECT * FROM pg_catalog.pg_tables;
Tabel sistem hidup dalam pg_catalog
database.
\l
setara dengan show databases
di MySQL. dt
≃ show tables
dan l
≃show databases
\dt
sangat bermanfaat. Yang pg_catalog.pg_tables
itu jauh lebih sedikit, karena tampaknya menyatukan tabel internal bersama dengan yang dibuat pengguna untuk database apa pun yang kebetulan Anda sambungkan.
psql my_db_name
harus dijalankan \dt
untuk bekerja. Ketika saya berlari psql
tanpa nama basis data, saya mendapat pesan "Tidak ditemukan hubungan"
SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
\c <DATABASE_NAME>
memilih basis data Anda.
Masuk sebagai superuser:
sudo -u postgres psql
Anda dapat membuat daftar semua database dan pengguna dengan \l
perintah, (daftar perintah lain dengan\?
).
Sekarang jika Anda ingin melihat database lain, Anda dapat mengubah pengguna / database dengan \c
perintah seperti \c template1
, \c postgres postgres
dan menggunakan \d
, \dt
atau \dS
untuk melihat tabel / tampilan / dll.
(Untuk kelengkapan)
Anda juga dapat menanyakan skema informasi (standar SQL) :
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
Anda dapat menggunakan terminal interaktif PostgreSQL Psql untuk menampilkan tabel dalam PostgreSQL.
1. Mulai Psql
Biasanya Anda dapat menjalankan perintah berikut untuk masuk ke psql:
psql DBNAME USERNAME
Sebagai contoh, psql template1 postgres
Satu situasi yang mungkin Anda miliki adalah: misalkan Anda login sebagai root, dan Anda tidak ingat nama database. Anda bisa masuk dulu ke Psql dengan menjalankan:
sudo -u postgres psql
Di beberapa sistem, perintah sudo tidak tersedia, Anda bisa menjalankan salah satu perintah di bawah ini:
psql -U postgres
psql --username=postgres
2. Tampilkan tabel
Sekarang di Psql Anda bisa menjalankan perintah seperti:
\?
daftar semua perintah\l
daftar basis data\conninfo
menampilkan informasi tentang koneksi saat ini\c [DBNAME]
terhubung ke database baru, misalnya, \c template1
\dt
daftar tabel skema publik\dt <schema-name>.*
daftar tabel skema tertentu, misalnya, \dt public.*
\dt *.*
daftar tabel semua skemaSELECT * FROM my_table;
(Catatan: pernyataan harus diakhiri dengan titik koma ;
)\q
keluar dari psqlMenjalankan psql dengan flag -E akan menggemakan kueri yang digunakan secara internal untuk mengimplementasikan \ dt dan yang serupa:
sudo -u postgres psql -E
postgres=# \dt
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
**************************
Login sebagai pengguna super sehingga Anda dapat memeriksa semua database dan skema mereka: -
sudo su - postgres
Kemudian kita bisa menuju shell postgresql dengan menggunakan perintah berikut: -
psql
Anda sekarang dapat memeriksa semua daftar database dengan menggunakan perintah berikut: -
\l
Jika Anda ingin memeriksa ukuran basis data juga gunakan: -
\l+
Tekan q
untuk kembali.
Setelah Anda menemukan database Anda sekarang, Anda dapat terhubung ke database itu menggunakan perintah berikut: -
\c database_name
Setelah terhubung, Anda dapat memeriksa tabel atau skema basis data dengan: -
\d
Sekarang untuk kembali menggunakan shell: -
q
Sekarang untuk lebih jauh melihat detail penggunaan tabel tertentu: -
\d table_name
Untuk kembali ke postgresql_shell tekan \q
.
Dan untuk kembali ke terminal, tekan exit
.
Jika Anda hanya ingin melihat daftar tabel yang Anda buat, Anda hanya dapat mengatakan:
\dt
Tetapi kami juga memiliki PATTERN
yang akan membantu Anda menyesuaikan tabel mana yang akan ditampilkan. Untuk menampilkan semua termasuk pg_catalog
Skema, Anda dapat menambahkan *
.
\dt *
Jika kamu melakukan: \?
\ dt [S +] [POLA] daftar tabel
gunakan hanya melihat tabel
=> \dt
jika ingin melihat tabel skema
=>\dt+
jika Anda ingin melihat tabel skema tertentu
=>\dt schema_name.*
+
dengan S
. Yang terakhir (surat) menunjukkan tabel skema. The +
hanya menunjukkan informasi tambahan.
Pertama Hubungkan dengan Database menggunakan perintah berikut
\c database_name
Dan Anda akan melihat pesan ini - You are now connected to database database_name
. Dan mereka menjalankan perintah berikut
SELECT * FROM table_name;
Dalam database_name dan table_name, perbarui saja dengan database dan nama tabel Anda
Jika Anda menggunakan pgAdmin4 di PostgreSQL, Anda dapat menggunakan ini untuk menampilkan tabel di database Anda:
select * from information_schema.tables where table_schema='public';
Perhatikan bahwa \dt
sendirian akan mencantumkan tabel dalam skema publik dari database yang Anda gunakan. Saya suka menyimpan meja saya di skema terpisah, jadi jawaban yang diterima tidak bekerja untuk saya.
Untuk mendaftar semua tabel dalam skema tertentu , saya perlu:
1) Hubungkan ke database yang diinginkan:
psql mydb
2) Tentukan nama skema yang ingin saya lihat tabel setelah \dt
perintah, seperti ini:
\dt myschema.*
Ini menunjukkan kepada saya hasil yang saya minati:
List of relations
Schema | Name | Type | Owner
----------+-----------------+-------+----------
myschema | users | table | postgres
myschema | activity | table | postgres
myschema | roles | table | postgres
select
*
from
pg_catalog.pg_tables
where
schemaname != 'information_schema'
and schemaname != 'pg_catalog';
\ dt (tidak * diperlukan) - akan mendaftar semua tabel untuk database yang sudah ada yang sudah terhubung dengan Anda. Juga berguna untuk diperhatikan:
\ d [table_name] - akan menampilkan semua kolom untuk tabel yang diberikan termasuk informasi jenis, referensi dan batasan kunci.
Menggunakan psql : \ dt
Atau:
SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
AND c.relkind = 'r'
AND relname NOT LIKE 'pg_%'
ORDER BY 1
Pertama-tama Anda harus terhubung dengan database Anda seperti
basis data saya adalah ubuntu
gunakan perintah ini untuk terhubung
\c ubuntu
Pesan ini akan ditampilkan
"Anda sekarang terhubung ke basis data" ubuntu "sebagai pengguna" postgres "."
Sekarang
Jalankan perintah ini untuk menampilkan semua tabel di dalamnya
\d+
Cara paling mudah untuk mendaftar semua tabel di command line adalah, untuk seleraku:
psql -a -U <user> -p <port> -h <server> -c "\dt"
Untuk database yang diberikan cukup tambahkan nama database:
psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>
Ia bekerja di Linux dan Windows.
sebagai oneliner cepat
# just list all the postgres tables sorted in the terminal
db='my_db_name'
clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print'
atau jika Anda lebih suka json output multi-liner yang lebih jelas:
IFS='' read -r -d '' sql_code <<"EOF_CODE"
select array_to_json(array_agg(row_to_json(t))) from (
SELECT table_catalog,table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name ) t
EOF_CODE
psql -d postgres -t -q -c "$sql_code"|jq
Untuk melihat tabel asing di psql, jalankan \dE
Pertama, Anda dapat terhubung dengan database postgres Anda menggunakan postgre.app di mac atau menggunakan postico. Jalankan perintah berikut:
psql -h localhost -p port_number -d database_name -U user_name -W
kemudian Anda memasukkan kata sandi Anda, ini akan memberikan akses ke database Anda