Apa's setara dengan tampilkan tabel
(MySQL) di PostgreSQL?
Dari psql
command line interface,
Pertama, pilih database anda
\c database_name
Maka, ini menunjukkan semua tabel dalam skema sekarang:
\dt
Pemrograman (atau dari psql
antarmuka juga, tentu saja):
SELECT * FROM pg_catalog.pg_tables;
Sistem tabel live di pg_catalog
database.
Login sebagai superuser:
sudo -u postgres psql
Anda bisa daftar semua database dan pengguna dengan \l
perintah, (daftar perintah lain oleh \?
).
Sekarang jika anda ingin melihat database lain, anda dapat mengubah user/database dengan \c
perintah seperti \c template1
, \c postgres postgres
dan menggunakan \d
, \dt
atau \dS
untuk melihat tabel/views/dll.
(Kelengkapan)
Anda bisa juga query (SQL-standar) informasi skema:
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 PostgreSQL's interaktif terminal Psql untuk menunjukkan tabel di PostgreSQL.
1. Mulai Psql
Biasanya anda dapat menjalankan perintah berikut untuk masuk ke dalam psql:
psql DBNAME USERNAME
Misalnya, psql template1 postgres
Salah satu situasi yang mungkin anda miliki adalah: misalkan anda login sebagai root, dan anda don't ingat nama database. Anda hanya bisa masuk dulu ke dalam Psql dengan menjalankan:
sudo -u postgres psql
Dalam beberapa sistem, sudo perintah ini tidak tersedia, anda malah 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 database\conninfo
menampilkan informasi tentang koneksi saat ini\c [DBNAME]
terhubung ke database baru, misalnya, \c template1
\dt
daftar tabel skema umum\dt <skema-nama>.*
daftar tabel skema tertentu, misalnya, \dt publik.*
\dt *.*
daftar tabel dari semua skemaSELECT * FROM my_table;
(Catatan: pernyataan harus diakhiri dengan titik koma ;
)\t
keluar dari psqlMenjalankan psql dengan -E bendera akan echo query yang digunakan secara internal untuk melaksanakan \dt dan 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 superuser sehingga anda dapat memeriksa semua database dan skema:-
sudo su - postgres
Kemudian kita bisa masuk ke postgresql shell dengan menggunakan perintah berikut:-
psql
Sekarang anda dapat memeriksa semua database daftar dengan menggunakan perintah berikut:-
\l
Jika anda ingin memeriksa ukuran database serta menggunakan:-
\l+
Tekan q
untuk kembali.
Setelah anda telah menemukan database anda sekarang anda dapat terhubung ke database menggunakan perintah berikut:-
\c database_name
Setelah terhubung, anda dapat memeriksa database tabel atau skema oleh:-
\d
Sekarang untuk kembali ke shell menggunakan:-
q
Sekarang untuk lebih melihat rincian dari suatu tabel gunakan:-
\d table_name
Untuk kembali ke postgresql_shell tekan \t
.
Dan untuk kembali ke terminal tekan keluar
.
Jika anda hanya ingin melihat daftar tabel anda've dibuat, anda hanya dapat mengatakan:
\dt
Tapi kami juga memiliki POLA
yang akan membantu anda menyesuaikan mana tabel untuk menunjukkan. Untuk menampilkan semua termasuk pg_catalog
Skema, anda dapat menambahkan *
.
\dt *
Jika anda lakukan: \?
\dt[S+] [PATTERN] daftar tabel
Pertama yang Terhubung dengan Database dengan menggunakan perintah berikut
\c database_name
Dan anda akan melihat pesan ini Anda sekarang terhubung ke database database_name
. Dan mereka jalankan perintah berikut
SELECT * FROM table_name;
Di database_name dan table_name hanya update dengan database dan nama tabel
Perhatikan, bahwa \dt
sendiri akan daftar tabel di umum skema database anda're menggunakan. Saya ingin menyimpan tabel-tabel yang terpisah skema, sehingga jawaban yang diterima tidak't bekerja untuk saya.
Untuk daftar semua tabel dalam waktu tertentu skema, aku yang dibutuhkan untuk:
psql mydb
\dt
perintah, seperti ini:\dt myschema.*
Ini menunjukkan saya hasil saya'm tertarik pada:
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 ada * diperlukan) -- akan menampilkan semua tabel yang ada di database anda sudah terhubung ke. Juga berguna untuk catatan:
\d [table_name] -- akan menampilkan semua kolom untuk tabel tertentu termasuk jenis informasi, referensi dan kunci kendala.
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
database saya adalah ubuntu
gunakan perintah ini untuk menghubungkan
\c ubuntu
Pesan ini akan menunjukkan
"Anda sekarang terhubung ke database "ubuntu" user "postgres"."
Sekarang
Jalankan perintah ini untuk menampilkan semua tabel di dalamnya
\d+