View

View dalam MySQL adalah tabel virtual yang didefinisikan berdasarkan hasil dari suatu query. Views mempermudah pengelolaan data kompleks dengan menyederhanakan query dan memberikan abstraksi data tanpa memengaruhi tabel fisik. View dapat digunakan seperti tabel biasa namun hanya dapat melakukan operasi seperti SELECT karena bersifat read-only secara default.

Keuntungan Menggunakan View

  • Menyederhanakan Query Kompleks

View memungkinkan Anda membuat query yang lebih sederhana untuk operasi yang sering digunakan. Contoh: Anda dapat membuat view untuk menampilkan laporan gabungan dari beberapa tabel.

  • Keamanan Data

Dengan view, Anda dapat membatasi data yang diakses oleh pengguna. Misalnya, hanya kolom tertentu dari tabel yang terlihat di view.

  • Pemeliharaan Mudah

Jika struktur data diubah, Anda hanya perlu memperbarui query view tanpa harus mengubah semua query SQL di aplikasi Anda.

  • Abstraksi Data

View memberikan representasi logis dari data, terpisah dari struktur fisik tabel.

Batasan dan Catatan dalam Menggunakan View

  • Read-Only View

Secara default, view bersifat read-only. Anda tidak dapat melakukan operasi seperti INSERT, UPDATE, atau DELETE pada view jika:

  1. View mengandung operasi seperti JOIN, GROUP BY, atau DISTINCT.
  2. View mengandung subquery.
  • Tidak Mendukung Indeks

Karena view adalah tabel virtual, Anda tidak dapat menambahkan indeks ke view.

  • Performa

View yang kompleks dapat memperlambat query, terutama jika melibatkan banyak operasi seperti JOIN atau AGGREGATION.

Cara Membuat View

  • Sintaks Dasar
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
  • Contoh Praktis

Membuat view untuk menampilkan data karyawan dengan gaji di atas 10 juta:

CREATE VIEW high_salary_employees AS SELECT id, name, salary FROM employees WHERE salary > 10000000;

Menggunakan view:

SELECT * FROM high_salary_employees;

Mengubah dan Menghapus View

  • Mengubah View

Jika Anda perlu memperbarui view, gunakan perintah CREATE OR REPLACE:

CREATE OR REPLACE VIEW high_salary_employees AS SELECT id, name, salary, department FROM employees WHERE salary > 10000000;
  • Menghapus View
DROP VIEW view_name;

Contoh:

DROP VIEW high_salary_employees;

Contoh Kasus Penggunaan View

  • Menyederhanakan Query Laporan

View dapat digunakan untuk membuat laporan penjualan:

CREATE VIEW sales_report AS
SELECT p.product_name, SUM(o.quantity) AS total_sold, SUM(o.quantity * p.price) AS total_revenue
FROM products p
JOIN orders o ON p.product_id = o.product_id
GROUP BY p.product_name;

Lakukan query sederhana pada view:

SELECT * FROM sales_report;
  • Membatasi Akses Data

View dapat digunakan untuk memberikan akses terbatas ke tabel:

CREATE VIEW public_employee_data AS
SELECT id, name, position
FROM employees;

Pengguna hanya bisa melihat data yang diizinkan:

SELECT * FROM public_employee_data;

Kesimpulan

View adalah fitur yang sangat berguna di MySQL untuk menyederhanakan query, menjaga keamanan data, dan memberikan abstraksi pada data. Namun, penting untuk memahami batasan dan implikasinya terhadap performa sistem.