Dalam hal mengelola database Postgres, ada berbagai macam alat pihak ketiga yang tersedia seperti SQL Workbench/J atau pgAdmin III. Namun, Postgres sendiri dibundel dengan alat baris perintah yang kuat yang disebut psql
yang bagus untuk mereka yang akrab dengan terminal atau mencari tugas administrasi skrip. Salah satu tugas paling umum yang dilakukan administrator database adalah membiasakan diri dengan lingkungan. Ini melibatkan mengajukan pertanyaan seperti "Basis data mana yang berada di server ini?" atau “Tabel apa yang disimpan dalam database tertentu di server ini?”. Dalam tutorial ini, kita akan belajar bagaimana menjawab pertanyaan kunci ini dari baris perintah menggunakan psql
.
Meta-Commands
Selain dapat mengirimkan kueri SQL mentah ke server melalui psql
anda juga dapat memanfaatkan psql
meta-perintah untuk mendapatkan informasi dari server. Meta-commands adalah perintah yang dievaluasi oleh psql
dan sering diterjemahkan ke dalam SQL yang dikeluarkan terhadap tabel sistem di server, menghemat waktu administrator saat melakukan tugas rutin. Mereka dilambangkan dengan garis miring terbalik dan kemudian diikuti oleh perintah dan argumennya. Kita akan melihat beberapa contohnya di bawah ini.
Mencantumkan Basis Data
Satu proses server Postgres dapat mengelola beberapa database secara bersamaan. Setiap database disimpan sebagai kumpulan file yang terpisah di direktorinya sendiri di dalam direktori data server. Untuk melihat semua database yang ditentukan di server, Anda dapat menggunakan \list
meta-command atau pintasannya \l
.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sales | ubuntu | 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
(4 rows)
Beralih Basis Data
Sebagian besar server Postgres memiliki tiga database yang ditentukan secara default:template0
, template1
dan postgres
. template0
dan template1
adalah basis data kerangka yang atau dapat digunakan oleh CREATE DATABASE
memerintah. postgres
adalah database default yang akan Anda sambungkan sebelum Anda membuat database lain. Setelah Anda membuat database lain, Anda ingin beralih ke database tersebut untuk membuat tabel dan menyisipkan data. Seringkali, saat bekerja dengan server yang mengelola banyak basis data, Anda akan sering menemukan kebutuhan untuk berpindah antar basis data. Ini dapat dilakukan dengan \connect
meta-command atau pintasannya \c
.
postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#
Mencantumkan Tabel
Setelah Anda terhubung ke database, Anda akan ingin memeriksa tabel mana yang telah dibuat di sana. Ini dapat dilakukan dengan \dt
meta-perintah. Namun, jika tidak ada tabel, Anda tidak akan mendapatkan output.
sales=# \dt
No relations found.
sales=#
Setelah membuat tabel, itu akan dikembalikan dalam daftar tabel dari tabel yang dibuat.
sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+--------
public | leads | table | ubuntu
(1 row)
sales=#