psql

Belajar atau bermain database PostgreSQL dengan aplikasi dengan tampilan memang mudah, tapi menggunakan tool bawaan dari Postgres resmi jauh lebih powerful. Namanya, psql.

psql adalah executable file yang ada di semua versi Postgres dan bisa digunakan tanpa kuatir soal perbedaan versi. psql dari versi 8.0 pun masih bisa digunakan untuk versi 11, meski fiturnya tak mampu dipakai untuk digunakan pada semua fitur yang ada di postgres versi 11.

Pada dasarnya, psql digunakan sebagai berikut:

psql -h <HOSTNAME> -p 5432 -d mydatabase -U myuser

Atau

psql postgresql://myuser@HOSTNAME:5432/mydatabase
  • HOSTNAME: adalah server di mana postgres berjalan
  • 5432: adalah port standar dari postgres, ganti ke angka lain jika diubah pada server

Cara pakai

psql -h <HOSTNAME> -p 5432 -d mydatabase -U myuser -c "SELECT NOW()"
              now
───────────────────────────────
 2019-04-02 16:37:05.401353+02
(1 row)

-c adalah opsi untuk menjalankan SQL command secara non-interaktif, alias proses selesai setelah perintah yang diberikan selesai.

Jika ingin menjalankan banyak SQL commands dalam jumlah banyak, maka opsi yang bisa digunakan adalah kumpulan SQL commands dalam bentuk file dan dijalankan dengan psql -f <NAMA_FILE.sql>

Dengan file seperti ini:

SET search_path='public';
CREATE TEMP TABLE x (x INT, y INT, c VARCHAR);

maka hasilnya adalah sebagai berikut:

psql -h <HOSTNAME> -p 5432 -d mydatabase -U myuser -f ex.sql
SET
Time: 0.786 ms
CREATE TABLE
Time: 15.371 ms

Perintah di psql

Perintah yang bisa dijalankan dalam psql dapat berupa psql meta-commands, yaitu perintah bawaan dan bantuan dalam psql saja, serta perintah dalam bentuk SQL commands seperti SELECT, UPDATE, dll.

Bagaimana jika tidak yakin bagaimana bentuk perintah SQL? Gampang, gunakan bantuan alias help seperti: \h <<PERINTAH_SQL>>

postgres=# \h UPDATE
Command:     UPDATE
Description: update rows of a table
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET { column_name = { expression | DEFAULT } |
          ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
          ( column_name [, ...] ) = ( sub-SELECT )
        } [, ...]
    [ FROM from_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Beberapa fitur berguna lain dalam psql adalah sebagai berikut:

  • formatting output dari hasil SQL commands
  • mengganti parameter atau variable dengan mudah
  • menjalankan perintah level OS seperti membuka file dll
  • konfigurasi leluasa melalui .psqlrc file
  • informasi lengkap mengenai function dll

Exit

Salah satu persoalan paling sering ditemui oleh pemula adalah bagaimana caranya keluar/exit/quit dari psql. Sejak versi Postgres 11, sudah ada perintah quit dan exit. Namun, jika masih ada di versi 10 atau di bawahnya, perintah untuk keluar dari psql adalah \q

Lanjutan

Untuk informasi lengkap dan lebih lanjut mengenai psql, bisa ke dokumentasi resmi yang ada di https://www.postgresql.org/docs/current/app-psql.html.