Pembahasan mengenai apa itu view dalam SQL, manfaat view dan bagaimana cara membuat dan mengelola view dalam database
Apa itu View?
View adalah sebuah objek database yang berfungsi sebagai virtual tabel yang berasal dari hasil query satu atau beberapa tabel pada database. View tidak menyimpan data fisik melainkan mengambil data secara dinamis berdasarkan query yang telah ditentukan sebelumnya setiap kali di akses. Setiap kali view dipanggil maka secara tidak langsung kita akan melakukan eksekusi terhadap query sql yang kita definisikan pada view tersebut.
Manfaat menggunakan view
Keamanan
View dapat digunakan untuk membatasi akses ke data sensitif dengan hanya menampilkan kolom dan baris tertentu kepada pengguna.Penyederhanaan Query
View dapat menyederhanakan query kompleks dengan menyimpan query tersebut sebagai objek yang dapat digunakan ulang.Abstraksi Data
View menyediakan lapisan abstraksi yang memisahkan pengguna dari struktur tabel fisik yang mendasarinya.Pemeliharaan Data
View dapat membantu dalam pemeliharaan data dengan memberikan cara mudah untuk menampilkan data yang telah terfilter atau digabungkan dari beberapa tabel.
Persiapan Membuat View
Sebelum membuat sebuah view maka terlebih dahulu kita harus melakukan persiapan dengan membuat database dan tabel-tabelnya. Kita akan menggunakan database MySQL dan contoh database sebuah sistem untuk mengelola restoran, berikut adalah database diagramnya.
Pada contoh kasus ini terdapat 7 tabel yaitu:
- Tabel meja Tabel ini digunakan untuk menyimpan data meja yang ada di restoran
- Tabel menu Tabel ini digunakan untuk menyimpan daftar menu yang tersedia pada restoran
- Tabel provider Tabel ini digunakan untuk menyimpan data provider atau penyedia menu, dalam hal ini penyedia menu bisa berasal dari internal restoran ataupun penyedia dari pihak luar
- Tabel pesanan Tabel ini digunakan untuk menyimpan data pesanan dan customer yang memesan
- Tabel pesanan_menu Tabel ini digunakan untuk menyimpan data menu apa saja yang dipesan pada sebuah pesanan
- Tabel pembayaran Tabel ini digunakan untuk menyimpan data pembayaran untuk pesanan yang telah dibuat
- Tabel pembayaran_jenis Tabel ini digunakan untuk menyimpan data jenis pembayaran apa saja yang tersedia pada restoran
Berikut adalah file untuk create databasenya beserta tabel dan isinya, silahkan download kemudian coba import pada database MySQL environment local, pada kasus ini penulis menggunakan tools aplikasi GUI phpmyadmin untuk mengelola database MySQL.
Setelah berhasil melakukan import database pada database Mysql maka dapat kita lanjutkan untuk membuat view.
Membuat View dari satu tabel
Kita akan coba membuat sebuah view sederhana dari sebuah tabel pesanan dengan nama vw_pesanan menggunakan syntax CREATE VIEW.
[ create view vw_pesanan as SELECT nama_customer,harga_total, tgl_post FROM pesanan ORDER BY pesanan_id DESC; ]
Jalankan query SQL tersebut menggunakan aplikasi GUI PhpMyadmin.
Setelah view berhasil dibuat maka step selanjutnya adalah mencoba menjalankan view yang sudah dibuat menggunakan query berikut.[ select * from vw_pesanan ; ]
Dari query sql view diatas maka akan didapatkan hasil seperti berikut ini.
Membuat View dari beberapa tabel
[ create view vw_pesanan_menu as SELECT p.pesanan_id,p.nama_customer,p.tgl_post as tgl_pesanan, mn.nama as nama_menu,pm.qty,pm.harga_satuan,pm.catatan FROM pesanan as p join pesanan_menu as pm on pm.pesanan_id=p.pesanan_id join menu as mn on mn.menu_id=pm.menu_id WHERE pm.status=1 order by p.pesanan_id desc; ]
Setelah view terbuat lakukan pemanggilan terhadap view yang sudah kita buat menggunakan query berikut.
[ select * from vw_pesanan_menu; ]
Berikut adalah hasil dari eksekusi query SQL tersebut
Merubah View
[ alter view vw_pesanan AS SELECT nama_customer, harga_total FROM pesanan order by pesanan_id desc; ]
Menghapus View
[ drop view vw_pesanan; ]
Latihan
- Buatlah sebuah view dengan nama vw_top_customer_bypesanan yang menampilkan 20 customer yang memiliki jumlah pesanan paling banyak pada tahun 2023 dan 2024.
columnnya: nama customer, qty pesanan - Buatlah sebuah view dengan nama vw_top_customer_byharga yang menampilkan 20 customer yang melakukan transaksi pembelian paling banyak pada tahun 2024.
columnnya: nama customer, total transaksi - Buatlah sebuah view dengan nama vw_last_trans yang menampilkan 10 tanggal/hari terakhir beserta jumlah transaksi yang terjadi pada setiap tanggal tersebut.
columnya: tanggal, total transaksi - Buatlah sebuah view dengan nama vw_trans_2023 yang menampilkan semua transaksi pada tahun 2023 setiap bulannya
columnya: bulan, tahun, total transaksi - Buatlah sebuah view dengan nama vw_top10_menu_2024 yang menampilkan 10 nama menu makanan beserta jumlah qty pesanan yang sudah terjadi pada tahun 2024
columnya: tahun,menu,jumlah pesanan - Buatlah sebuah view dengan nama vw_top10_customer_bytopmenu yang menampilkan 10 nama customer yang paling banyak membeli makanan yang paling banyak di pesan pada 2024
columnya: tahun, nama customer, menu, jumlah pesanan - Buatlah sebuah view dengan nama vw_sum_pembayaran_2024 yang menampilkan jumlah pesanan dan jumlah transaksi (rupiah) untuk setiap jenis pembayaran yang ada dan urutkan berdasarkan total transaksi dari yang paling besar
columnya: tahun, jenis pembayaran, jumlah pesanan, total transaksi - Buatlah sebuah view dengan nama vw_menu_dislike yang menampilkan menu yang tidak pernah dipesan
columnya: menu, jumlah pesanan
COMMENTS