0Pricing
SQL Academy · Pelajaran

VIEW Biasa: Penggunaan Ulang Logis

Buat VIEW untuk merangkum kueri kompleks, menyederhanakan laporan, dan memberikan akses baca ke sebagian kolom

VIEW Biasa: Penggunaan Ulang Logis adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Apa Itu Tampilan?

Tampilan adalah SELECT yang disimpan. Setiap kali Anda mengkueri tampilan, SELECT yang mendasarinya dijalankan. Seperti kueri bernama yang dapat Anda gunakan untuk JOIN, memfilter, dan melakukan agregasi.

CREATE VIEW active_users AS
  SELECT id, email, full_name
  FROM users
  WHERE deleted_at IS NULL;

Menggunakan Tampilan

Kueri tampilan seperti tabel apa pun:

SELECT COUNT(*) FROM active_users;
SELECT * FROM active_users WHERE email LIKE '%@gmail.com';

Tampilan Tidak Disimpan

Definisi tampilan yang disimpan, bukan hasilnya. Setiap kueri memperluas tampilan dan menjalankan SELECT yang mendasarinya. Pertimbangan rencana kuerinya tetap sama.

Mengapa Menggunakan Tampilan?

  • Penggunaan ulang — definisikan kueri kompleks sekali
  • Abstraksi — sembunyikan implementasi (gabungkan 3 tabel → "active_users")
  • Keamanan — berikan SELECT pada tampilan tanpa mengekspos tabel dasar
  • Kompatibilitas — pertahankan bentuk kueri lama setelah perubahan skema

CREATE OR REPLACE

Perbarui tampilan di tempat — tetapi hanya jika tipe dan urutan kolomnya cocok:

CREATE OR REPLACE VIEW active_users AS
  SELECT id, email, full_name, last_login
  FROM users
  WHERE deleted_at IS NULL;

-- ERROR if columns conflict; DROP VIEW + CREATE VIEW instead.

Tampilan dengan JOIN dan Agregasi

Kasus umum: buat ringkasan per pengguna:

CREATE VIEW user_stats AS
SELECT u.id, u.email,
       COUNT(o.id) AS order_count,
       COALESCE(SUM(o.total), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;

Tampilan yang Dapat Diperbarui

Tampilan sederhana (satu tabel, tanpa agregasi, tanpa DISTINCT) dapat diperbarui — Anda dapat melakukan INSERT/UPDATE/DELETE melaluinya. PostgreSQL memperbaruinya secara otomatis jika memungkinkan.

Tampilan Berkualifikasi Skema

Letakkan tampilan utilitas dalam skema khusus:

CREATE SCHEMA api;
CREATE VIEW api.users_public AS
  SELECT id, email, full_name FROM users WHERE deleted_at IS NULL;

GRANT SELECT ON api.users_public TO app_reader;

Tampilan dan Izin

Secara default, tampilan berjalan dengan hak istimewa pengguna yang melakukan kueri — pengguna tersebut tetap memerlukan izin pada tabel dasar. Untuk mengizinkan pengguna dengan hak istimewa rendah mengueri tabel sensitif, gunakan fungsi SECURITY DEFINER.

Pertimbangan Performa

Perencana memperluas tampilan dan menerapkan optimasi biasanya. Terkadang GROUP BY pada tampilan menghambat pendorongan predikat — pecah atau tulis ulang jika EXPLAIN menunjukkan masalah.

Dependensi Tampilan

Penghapusan tabel dasar diblokir jika ada tampilan yang bergantung padanya. Gunakan DROP TABLE ... CASCADE hanya jika memang itu yang Anda maksud. Daftar dependensinya:

SELECT * FROM pg_depend
WHERE refobjid = 'users'::REGCLASS;

Ringkasan

Tampilan adalah SELECT yang dapat digunakan kembali.

  • Definisikan sekali, kueri berkali-kali
  • Abstraksi dan keamanan
  • Dapat diperbarui jika sederhana
  • Dijalankan ulang pada setiap kueri — tidak ada penyimpanan tembolok bawaan

Cek Cepat

Apakah mengueri tampilan menyimpan hasilnya?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “VIEW Biasa: Penggunaan Ulang Logis” gratis?

Ya — teks lengkap “VIEW Biasa: Penggunaan Ulang Logis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “VIEW Biasa: Penggunaan Ulang Logis”?

Buat VIEW untuk merangkum kueri kompleks, menyederhanakan laporan, dan memberikan akses baca ke sebagian kolom Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “VIEW Biasa: Penggunaan Ulang Logis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. VIEW Biasa: Penggunaan Ulang Logis
  2. VIEW yang Dapat Diperbarui dan Pemicu INSTEAD OF
  3. VIEW MATERIALIZED dan Strategi REFRESH
  4. Kapan Melakukan Agregasi Awal
← Kembali ke SQL Academy