Memahami View pada SQL

Pembahasan mengenai apa itu view dalam SQL, manfaat view dan bagaimana cara membuat dan mengelola view dalam database

memahami view pada SQL
Dalam dunia database, view merupakan salah satu fitur yang sangat berguna untuk mengelola dan mengakses data. Apa itu view dalam SQL, dan bagaimana cara kerjanya? Mari kita jelajahi lebih dalam.

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

  1. Keamanan
    View dapat digunakan untuk membatasi akses ke data sensitif dengan hanya menampilkan kolom dan baris tertentu kepada pengguna.

  2. Penyederhanaan Query
    View dapat menyederhanakan query kompleks dengan menyimpan query tersebut sebagai objek yang dapat digunakan ulang.

  3. Abstraksi Data
    View menyediakan lapisan abstraksi yang memisahkan pengguna dari struktur tabel fisik yang mendasarinya.

  4. 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.

Database Diagram Project Restoran

Pada contoh kasus ini terdapat 7 tabel yaitu:

  1. Tabel meja Tabel ini digunakan untuk menyimpan data meja yang ada di restoran
  2. Tabel menu Tabel ini digunakan untuk menyimpan daftar menu yang tersedia pada restoran
  3. 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
  4. Tabel pesanan Tabel ini digunakan untuk menyimpan data pesanan dan customer yang memesan
  5. Tabel pesanan_menu Tabel ini digunakan untuk menyimpan data menu apa saja yang dipesan pada sebuah pesanan
  6. Tabel pembayaran Tabel ini digunakan untuk menyimpan data pembayaran untuk pesanan yang telah dibuat
  7. 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.

membuat view pada 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.

Hasil eksekusi query pemanggilan view

Membuat View dari beberapa tabel

Selain membuat view yang berasal dari satu tabel, kita juga bisa membuat sebuah view yang berasal dari beberapa tabel, kali ini kita akan coba membuat view yang menggunakan beberapa tabel dengan nama vw_pesanan_menu.

[ 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

Eksekusi query view dari beberapa tabel

Merubah View

Jika ingin mengubah definisi view yang sudah ada, kita bisa menggunakan perintah ALTER VIEW
[ alter view vw_pesanan AS SELECT nama_customer, harga_total FROM pesanan order by pesanan_id desc; ]

Menghapus View

Untuk menghapus view, kita menggunakan perintah DROP VIEW
[ drop view vw_pesanan; ]

Latihan

Untuk lebih memperdalam pengetahuan anda tentang view pada SQL silahkan kerjakan beberapa latihan berikut ini. 
  1. 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
  2. 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
  3. 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
  4. Buatlah sebuah view dengan nama vw_trans_2023 yang menampilkan semua transaksi pada tahun 2023 setiap bulannya
    columnya: bulan, tahun, total transaksi
  5. 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
  6. 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 
  7. 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
  8. Buatlah sebuah view dengan nama vw_menu_dislike yang menampilkan menu yang tidak pernah dipesan
    columnya: menu, jumlah pesanan

Kesimpulan

View dalam SQL merupakan sebuah alat yang powerful untuk mengelola dan mengakses data dengan lebih aman, efisien, dan fleksibel. Ada sebuah objek database lain yang serupa dengan view tetapi memiliki karakteristik yang berbeda yaitu Materialized view, silahkan pelajari hal ini pada artikel perbedaan view dan materialized view. Dengan memahami cara kerja view dan memanfaatkannya secara optimal, Anda dapat meningkatkan performa dan kemudahan pengelolaan basis data.

COMMENTS

Nama

Apache,4,Bisnis,1,Bisnis Online,1,Blog,10,Blogger,6,Cpanel,1,CSS,1,Database,4,Framework,1,Hacking,3,HTML,1,HTML and CSS,2,Info,2,Javascript,2,Javascript and AJAX,5,Keamanan Web,1,linux,2,Muslim,1,MySQL,12,Networking,1,Open GL,1,Optimasi Website,7,Pemrograman java,1,Pemrograman web,7,PHP,9,phpMyAdmin,2,PosgreSql,7,SEO,4,SQL,11,SQL Injection,3,SQL Server,19,SQLMap,3,UMKM,2,Umroh,1,Website,1,Wordpress,4,Xampp,1,
ltr
item
Nanang Gunawan Blog: Memahami View pada SQL
Memahami View pada SQL
Pembahasan mengenai apa itu view dalam SQL, manfaat view dan bagaimana cara membuat dan mengelola view dalam database
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1m_xIzaGOajy_sK_TbTzQbNd8vA1jBinGmOlj9lxbgphNtbzXCPa9PTKNJSZ5nMccWg4JM7BweGc2L1GqWa8Zd9-PWrH39HtPYi6Oap7wEfd8IyMxcSnDYs2NfR13sUMDlED1rgwTBiuo76IiTi7WYTnSrhjTWkMPOXmutLUSXABshNBGXU6OWsm5EE/w640-h360/view%20pada%20sql.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1m_xIzaGOajy_sK_TbTzQbNd8vA1jBinGmOlj9lxbgphNtbzXCPa9PTKNJSZ5nMccWg4JM7BweGc2L1GqWa8Zd9-PWrH39HtPYi6Oap7wEfd8IyMxcSnDYs2NfR13sUMDlED1rgwTBiuo76IiTi7WYTnSrhjTWkMPOXmutLUSXABshNBGXU6OWsm5EE/s72-w640-c-h360/view%20pada%20sql.jpg
Nanang Gunawan Blog
https://www.nananggunawan.com/2024/11/memahami-view-pada-sql.html
https://www.nananggunawan.com/
https://www.nananggunawan.com/
https://www.nananggunawan.com/2024/11/memahami-view-pada-sql.html
true
4195327445586723627
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content