Query database di postgresql penjelasan sederaharnya cara kita untuk mendapatkan data yang kita inginkan dalam bentuk table baru yang kita dapatkan dari tabel tabel yang tersedia di database yang sama.

Dalam praktik nge query databases ada dua cara melalui terminal (shell), atau melalui GUI SQL (seperti: pgAdmin, Dbeaver, dan sejenisnya). Kalo aku sendiri lebih nyaman pakai terminal (shell zsh).

Prasyarat sebelum nge-query harus punya:

  • postgresql
  • databases
  • dbeaver (untuk menampilkan ER Diagram dari databases yang sudah ada)

Dalam case ini dipakai database dengan nama dvd_rent. Pastikan server postgresql sudah berjalan lalu masuk ke database dvd_rent :

$ psql dvd_rent

lalu akan muncul seperti ini :

$ psql dvd_rent
psql (12.4)
Type "help" for help.

dvd_rent=# [command line sql ketik disini, pastikan diakhiri dengan titik koma]

sebelum nge query setidaknya kita punya ER(Entity Relational) Diagram supaya kita punya gambaran (visualization databases), untuk databases dvd_rent bentuknya seperti ini:

DVD Rent Database ER Diagram

cara untuk menampilkan ER Diagram seperti gambar diatas di dbeaver Klik dvd_rent(nama database) -> Schema -> Table, lalu klik kanan Table pilih opsi View Diagram, maka di jendala sebelah kanan akan muncul diagram.

Selain dengan ER Diagram kita bisa melihat tabel table yang punya entity relation dengan mengetikkan perintah :

\dt

contoh hasilnya:

dvd_rent=# \dt

            List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | metalbee
 public | address       | table | metalbee
 public | category      | table | metalbee
 public | city          | table | metalbee
 public | country       | table | metalbee
 public | customer      | table | metalbee
 public | film          | table | metalbee
 public | film_actor    | table | metalbee
 public | film_category | table | metalbee
 public | inventory     | table | metalbee
 public | language      | table | metalbee
 public | payment       | table | metalbee
 public | rental        | table | metalbee
 public | staff         | table | metalbee
 public | store         | table | metalbee
 (15 rows)

Disini praktik query nya melalui terminal. OK, kita akan melakukan beberapa query yang nanti hasilnya akan menjadi seperti gambar gambar table dibawah:

Query Tabel Dengan column: first_name, custome_id, dan total_rental

Query Select Column Postgres 1

Untuk bisa menghasilkan tabel seperti diatas caranya:

Keterangan:

SELECT film.film_id, title, name AS category_name statement memilih column dari table table yang ada, knapa untuk column film.film_id ? karena film_id diambil dari table film (lihat ER Diagram).

kalo misal ditulis SELECT film.film_id, name AS category_name, title, maka hasilnya tabel dari kiri kekanan pun akan menjadi column 1: film_id, column 2: category_name, column 3:title, jadi posisi column yang kita SELECT menentukan urutan kolom dari kiri kekanan.

khusus untuk column name namAnya diubah menjadi category_name, cara mengubah namanya [nama column didalam tabel] AS [nama column baru], misal:

name AS category_name

statement FROM rental LEFT JOIN customer ON customer.customer_id = rental.customer_id origin tabelnya berasal dari table rental di join memalui statement left join nah untuk table customer kita samain key customer_id karena tabel customer dan rental memiliki key yang sama (customer_id). untuk bagian agregate key bisa di bolak balik bisa seperti ini ON rental.customer_id = customer.customer_id . Nah untuk penggunaan prefix JOIN seperti LEFT RIGHT atau INNER, ini ada kaitannya dengan performa (per milisecond) query data.

statement GROUP BY customer.customer_id, first_name, rental.customer_id untuk nge groupin banyak customer id yg sama dalam tabel baru yang dibuat.

statement ORDER BY customer.first_name ASC untuk ngurutin secara ascending berdasarkan column first_name.

atau pakai code query dengan cara nge aliasin dari nama tabel, contohnya bisa lihat di bawah ini:

Query Tabel Dengan column: customer_id, total_payment.

Query Select Column Postgres 2

Untuk bisa menghasilkan tabel seperti diatas caranya:

Query Tabel Dengan column: film_id, title, category_name, category_id.

Query Select Column Postgress 3

Untuk bisa menghasilkan tabel seperti diatas caranya: