SQL - Memperbarui Pandangan

Hai sana, para entusiast SQL yang sedang berkembang! Hari ini, kita akan masuk ke dunia yang menarik dari pembaruan pandangan di SQL. Jangan khawatir jika Anda baru dalam hal ini - saya akan menghidangkan Anda setiap langkah dengan kesabaran seekor penyu tua. Pada akhir pelajaran ini, Anda akan dapat memperbarui pandangan seperti seorang ahli!

SQL - Update Views

apa itu Pandangan di SQL?

Sebelum kita masuk ke pembaruan pandangan, mari segarkan ingatan kita tentang apa sebenarnya pandangan itu. Pandangan adalah seperti tabel virtual - itu tidak menyimpan data itu sendiri, melainkan menunjukkan data dari satu atau lebih tabel nyata dalam cara khusus. Itu seperti melihat melalui jendela magis yang menunjukkan persis apa yang Anda inginkan dari database Anda.

Membuat Pandangan Sederhana

Mari kita mulai dengan contoh sederhana. Bayangkan kita memiliki tabel yang disebut employees:

CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);

INSERT INTO employees VALUES
(1, 'Alice', 'HR', 50000),
(2, 'Bob', 'IT', 60000),
(3, 'Charlie', 'Sales', 55000);

Sekarang, mari kita buat pandangan yang menunjukkan hanya nama dan departemen:

CREATE VIEW employee_info AS
SELECT name, department
FROM employees;

Pandangan ini, employee_info, adalah seperti jendela yang hanya menunjukkan kolom nama dan departemen dari tabel employees kita.

Statement SQL UPDATE Pandangan

Sekarang kita mengerti apa itu pandangan, mari belajar bagaimana memperbarunya. Sintaks untuk pembaruan pandangan mirip dengan pembaruan tabel biasa:

UPDATE view_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Tetapi, ada tanggul! Bukan semua pandangan dapat diperbarui. Pandangan biasanya dapat diperbarui jika memenuhi syarat-syarat berikut:

  1. Berdasarkan tabel tunggal
  2. Tidak menggunakan fungsi agregat (seperti SUM, AVG, dll.)
  3. Tidak memiliki klausa GROUP BY atau HAVING
  4. Tidak menggunakan DISTINCT

Mari kita mencoba memperbarui pandangan employee_info kita:

UPDATE employee_info
SET department = 'Marketing'
WHERE name = 'Charlie';

Jika Anda menjalankan perintah ini, itu akan sebenarnya memperbarui tabel employees yang mendasar. Departemen Charlie akan berubah dari 'Sales' menjadi 'Marketing'. Itu seperti magis - Anda mengubah pandangan, tapi tabel nyata di belakangnya yang dipperbarui!

Ketika Pembaruan Gagal

Sekarang, mari kita buat pandangan yang tidak dapat diperbarui:

CREATE VIEW high_salaries AS
SELECT name, salary
FROM employees
WHERE salary > 55000;

Jika kita mencoba memperbarui pandangan ini:

UPDATE high_salaries
SET salary = 70000
WHERE name = 'Bob';

Ini mungkin gagal, tergantung pada sistem database Anda. Mengapa? Karena pandangan memiliki klausa WHERE yang membatasi baris mana yang terlihat. Jika kita mengubah gaji Bob menjadi 70000, dia masih memenuhi kriteria pandangan. Tetapi jika kita mencoba mengubahnya menjadi 50000, dia akan hilang dari pandangan!

Memperbarui Beberapa Baris dan Kolom

Sekarang, mari kita menjadi lebih petarung dan memperbarui beberapa baris dan kolom sekaligus. Kita akan menggunakan pandangan employee_info aslinya untuk ini:

UPDATE employee_info
SET department = 'Operations'
WHERE department IN ('HR', 'IT');

Perintah ini akan mengubah departemen menjadi 'Operations' untuk semua karyawan yang saat ini di HR atau IT. Itu seperti mengayunkan tongkat sihir dan mengorganisir seluruh struktur perusahaan Anda!

Menggunakan Subquery dalam Pembaruan

Kita dapat menjadi lebih keren dengan menggunakan subquery dalam pembaruan kita. Misalnya, kita ingin memberikan kenaikan gaji kepada siapa saja yang berada dalam departemen yang sama seperti Alice:

UPDATE employees
SET salary = salary * 1.1
WHERE department = (SELECT department FROM employees WHERE name = 'Alice');

Query ini pertama kali menemukan departemen Alice, kemudian memberikan kenaikan gaji 10% kepada semua orang di departemen itu. Itu seperti Alice mensebarkan keberuntungan ke semua rekan departemennya!

Praktik Terbaik untuk Memperbarui Pandangan

Sebelum kita mengakhiri, mari bicarakan tentang beberapa praktik terbaik:

  1. Selalu gunakan klausa WHERE: Ini membantu mencegah pembaruan yang tidak kehendak ke semua baris.
  2. Uji pembaruan Anda: Cobalah pembaruan Anda pada subkelompok data terlebih dahulu.
  3. Gunakan transaksi: Ini memungkinkan Anda untuk membatalkan perubahan jika ada kesalahan.
  4. Periksa definisi pandangan: Selalu ingatkan diri tentang struktur tabel yang mendasar.

Berikut adalah tabel yang menggabungkan metode yang kita diskusikan:

Metode Contoh kasus Penggunaan
Pembaruan Sederhana UPDATE view SET col = value WHERE condition Pembaruan kolom tunggal dasar
Pembaruan Multi-kolom UPDATE view SET col1 = value1, col2 = value2 WHERE condition Pembaruan beberapa kolom sekaligus
Pembaruan Subquery UPDATE table SET col = value WHERE col IN (SELECT...) Pembaruan yang tergantung pada kondisi kompleks

Ingat, para SQL padawan muda, dengan kekuatan yang besar datang tanggung jawab yang besar. Memperbarui pandangan bisa menjadi alat yang kuat, tapi selalu periksa kerja Anda untuk mencegah konsekuensi yang tidak diinginkan!

Dan begitulah panduan lengkap untuk memperbarui pandangan di SQL. Latih konsep ini, dan segera Anda akan dapat memanipulasi data seperti seorang ahli database! Selamat mengoding, dan semoga permintaan Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset