Learn
← Previous Next →

Hari 29: VIEW & Optimasi Query

55 min Last updated 25 Mar 2026

VIEW — Query yang Disimpan

VIEW adalah query SELECT yang disimpan dengan nama. Bisa dipanggil seperti tabel biasa.

-- Buat view
CREATE VIEW IF NOT EXISTS v_ringkasan_pelanggan AS
SELECT
  pl.id,
  pl.nama,
  pl.kota,
  COUNT(p.id) AS jumlah_pesanan,
  COALESCE(SUM(p.total_harga), 0) AS total_belanja
FROM pelanggan pl
LEFT JOIN pesanan p ON pl.id = p.pelanggan_id
GROUP BY pl.id, pl.nama, pl.kota;

-- Gunakan view seperti tabel
SELECT * FROM v_ringkasan_pelanggan
WHERE jumlah_pesanan > 2
ORDER BY total_belanja DESC;

-- Hapus view
DROP VIEW IF EXISTS v_ringkasan_pelanggan;

Tips Optimasi Query

  • Pilih kolom spesifik, hindari SELECT * di production
  • Filter dengan WHERE sedini mungkin
  • Gunakan INDEX pada kolom yang sering di-filter/JOIN
  • Hindari fungsi pada kolom di WHERE (tidak bisa pakai index)
  • Gunakan LIMIT saat eksplorasi data

💡 Notice: CREATE VIEW IF NOT EXISTS mencegah error jika view sudah ada sebelumnya.

Assignment

Buat VIEW bernama v_produk_lengkap yang menggabungkan produk dengan nama_kategori. Kemudian query view tersebut untuk tampilkan produk dari kategori "Elektronik" saja.

Expected output:

4 row(s) returned
SQL query.sql
Solution
Output
⏳ Loading DB...