View adalah query yang disimpan sebagai "tabel virtual" — bisa di-SELECT seperti tabel biasa.
Membuat view:
CREATE VIEW active_users AS
SELECT id, name, email
FROM users
WHERE active = 1;
Menggunakan view:
SELECT * FROM active_users;
-- Sama dengan menjalankan query di atas
View untuk query kompleks:
CREATE VIEW user_stats AS
SELECT
u.id,
u.name,
COUNT(p.id) as total_posts,
COALESCE(SUM(p.views), 0) as total_views,
MAX(p.created_at) as last_post_date
FROM users u
LEFT JOIN posts p ON u.id = p.user_id
GROUP BY u.id;
-- Sekarang query sederhana:
SELECT * FROM user_stats WHERE total_posts > 5 ORDER BY total_views DESC;
Keuntungan view:
- Menyederhanakan query kompleks
- Membatasi akses ke kolom tertentu (security)
- Konsistensi — definisi query di satu tempat
Menghapus view:
DROP VIEW IF EXISTS active_users;