Membuat view, mengupdate view dan mengupdate data pada view menggunakan MySQL

Selamat malam teman-teman, malam ini kita akan mencoba membuat view, mengupdate view dan mengupdate data pada view menggunakan MySQL.

Pertama tama, kita tentukan terlebih dahulu tujuan membuat view itu sendiri untuk apa. Kali ini kita akan mencoba membuat view dengan menampilkan detail order dengan produk, customer dan juga statusnya. Untuk querynya kita menggunakan CREATE VIEW dan juga INNER JOIN dikarenakan kita akan mengambil sumber data dari banyak tabel

CREATE VIEW v_order AS
SELECT c.orderNumber as nomor_order,
a.productCode AS kode_produk,
b.productName AS nama_produk,
a.quantityOrdered AS quantity,
a.priceEach AS harga,
d.customerName AS nama_customer,
c.status AS status
FROM orderdetails a 
INNER JOIN products b
ON a.productCode = b.productCode
INNER JOIN orders c
ON a.orderNumber = c.orderNumber
INNER JOIN customers d
ON c.customerNumber = d.customerNumber

Gambar 1 Query view

Jika berhasil membuat view, maka akan muncul tampilan seperti dibawah ini.

Gambar 2 Berhasil membuat view

Selanjutnya kita coba cek apakah viewnya sudah berhasil dibuat atau tidak dengan cara kita SELECT semua data yang ada di dalam view menggunakan perintah

SELECT * FROM v_order;

Jika sudah berhasil, maka akan muncul data yang dalam view tersebut

Gambar 3 Hasil select view

Kedua, kita akan mencoba menambahkan kolom kedalam view. Untuk melakukannya kita bisa menggunakan perintah CREATE OR REPLACE VIEW atau ALTER VIEW. Kali ini kita coba menggunakan CREATE OR REPLACE saja ya..... Kita coba menambahkan nomor telp customer pada kolom terakhir view. Untuk querynya seperti dibawah

CREATE OR REPLACE VIEW v_order AS
SELECT c.orderNumber as nomor_order,
a.productCode AS kode_produk,
b.productName AS nama_produk,
a.quantityOrdered AS quantity,
a.priceEach AS harga,
d.customerName AS nama_customer,
c.status AS status, 
d.phone AS telpon
FROM orderdetails a 
INNER JOIN products b
ON a.productCode = b.productCode
INNER JOIN orders c
ON a.orderNumber = c.orderNumber
INNER JOIN customers d
ON c.customerNumber = d.customerNumber

Jika sudah berhasil, kita bisa melakukan pengecekan dengan cara seperti diatas. Untuk hasil dari update view diatas seperti pada gambar dibawah ini

Gambar 4 Hasil update view

Ketiga, kita akan mencoba update data yang ada didalam view tersebut. Semisal kita akan mengupdate data quantity order dengan nomor order 10123 dan kode produk S18_1589 yang semula 26 menjadi 90 kita bisa menggunakan query UPDATE seperti biasanya

UPDATE v_order 
SET quantity = 90 
WHERE nomor_order = 10123 
AND kode_produk = 'S18_1589'

Jika berhasil, maka akan muncul tampilan seperti dibawah ini

Gambar 5 Berhasil update data pada view

Lalu kita cek apakah benar benar berhasil data tersebut di update. Kita kembali SELECT semua data yang ada pada view tersebut. 

Gambar 6 Data berhasil dirubah

Nah dikarenakan algoritma view secara default menggunakan MERGE (Jika support merge), maka data pada tabel utamanya akan ikut berubah juga. Dikarenakan kita merubah data quantity maka kita akan cek data table orderdetail menggunakan query

SELECT * FROM orderdetails 
WHERE orderNumber = 10123 
AND productCode = 'S18_1589'

 Betul saja, data pada tabel utama juga ikut berubah ketika kita mengupdate data pada view dikarenakan algoritma yang kita guanakan adalah MERGE.

Gambar 7 Berhasil update pada tabel utama

YEAAYYY..... Kita sudah berhasil membuat view, mengupdate view dan mengupdate data pada view menggunakan MySQL. Jangan lupa baca blog saya yang lain. Terimakasih

Komentar

Postingan populer dari blog ini

Beberapa klausa dalam MySQL yang digunakan untuk mengurutkan, memfilter, mencari dan juga menghitung data

Mendefinisikan metadata dari sebuah artikel

Cara remote MySQL menggunakan XAMPP di Windows