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...