Cara menggunakan menampilkan view di mysql

View adalah perintah query yang disimpan pada database dengan suatu nama tertentu, sehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut.

Syntax dasar perintah untuk membuat view adalah sebagai berikut :

CREATE
    [OR REPLACE]
    VIEW view_name [(column_list)]
    AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang sama dengan perintah tersebut. Jika tidak maka perintah CREATE VIEW akan menghasilkan error jika nama view yang ingin dibuat sudah ada sebelumnya.

Contoh Penggunaan

Kita akan membuat view dari relasi antara table "ms_harga_harian", "ms_cabang" dan "ms_produk" dari database phi-minimart dengan nama "view_harga". Perintahnya adalah sebagai berikut :

View merupakan sebuah tabel virtual dari satu tabel maupun gabungan dari beberapa tabel(join table). Dengan menggunakan view kita akan dipermudah untuk mengakses query sql dalam satu tabel yang sederhana. 

Di dalam bahasa SQL, terdapat vitur yang dinamakan VIEW. Dalam tutorial belajar MySQL kali ini saya akan membahas tentang pengertian VIEW dan cara penggunaan VIEW di dalam MySQL.

img

Tutorial ini menggunakan database mahasiswa yang dibuat pada tutorial Cara Menjalankan Query MySQL dari File Teks.


Pengertian VIEW MySQL

Di dalam MySQL, View dapat didefenisikan sebagai ‘tabel virtual’. Tabel ini bisa berasal dari tabel lain, atau gabungan dari beberapa tabel.

Tujuan dari pembuatan VIEW adalah untuk kenyamanan (mempermudah penulisan query), untuk keamanan (menyembunyikan beberapa kolom yang bersifat rahasia), atau dalam beberapa kasus bisa digunakan untuk mempercepat proses menampilkan data (terutama jika kita akan menjalankan query tersebut secara berulang).

Sebagai contoh, misalkan saya ingin menampilkan nama dosen yang berdomisi di Jakarta, maka saya bisa menggunakan query berikut:

mysql> SELECT NIP, nama_dosen, alamat FROM daftar_dosen
WHERE alamat = 'Jakarta';
+------------+--------------+---------+
| NIP        | nama_dosen   | alamat  |
+------------+--------------+---------+
| 0576431001 | M. Siddiq    | Jakarta |
| 1080432007 | Arif Budiman | Jakarta |
+------------+--------------+---------+
2 rows in set (0.00 sec)

Misalkan query tersebut akan dijalankan setiap beberapa detik (diakses dari website yang sibuk),  pada setiap permintaan data, MySQL server harus melakukan pemrosesan untuk mencari seluruh dosen yang memiliki alamat di Jakarta. Selain itu, dengan menggunakan VIEW saya bisa menyembunyikan beberapa kolom dari tabel daftar_dosen.


Cara Penggunaan VIEW di dalam MySQL

Untuk membuat View di dalam MySQL, kita tinggal menggunakan format dasar sebagai berikut:

CREATE VIEW nama_view AS ‘query select disini’

Selanjutnya VIEW bisa diakses seperti tabel ‘biasa’. Agar lebih jelas, langsung saja kita praktek menggunakan tabel daftar_dosen dari database mahasiswa:

mysql> CREATE VIEW dosen_jakarta AS SELECT NIP, nama_dosen, alamat FROM
daftar_dosen WHERE alamat = 'Jakarta';
Query OK, 0 rows affected (0.17 sec)
 
mysql> SELECT * FROM dosen_jakarta;
+------------+--------------+---------+
| NIP        | nama_dosen   | alamat  |
+------------+--------------+---------+
| 0576431001 | M. Siddiq    | Jakarta |
| 1080432007 | Arif Budiman | Jakarta |
+------------+--------------+---------+
2 rows in set (0.15 sec)

Dalam query diatas, saya membuat sebuah VIEW bernama dosen_jakarta. Saya juga menyembunyikan kolom no_hp dari tabel asli daftar_dosen.

Untuk mengakses data yang terdapat di VIEW, cukup menggunakan query SELECT:

mysql> SELECT * FROM dosen_jakarta;
+------------+--------------+---------+
| NIP        | nama_dosen   | alamat  |
+------------+--------------+---------+
| 0576431001 | M. Siddiq    | Jakarta |
| 1080432007 | Arif Budiman | Jakarta |
+------------+--------------+---------+
2 rows in set (0.18 sec)

Sekarang, pada setiap pemanggilan VIEW, MySQL Server tidak perlu memfilter hasil pencarian, namun cukup memanggil tabel virtual. Hal ini akan mempercepat proses tampilan data.

VIEW juga berfungsi sama seperti layaknya tabel ‘biasa’, sebagai contoh, saya bisa melakukan query berikut:

mysql> SELECT nama_dosen FROM dosen_jakarta WHERE NIP = '1080432007';
+--------------+
| nama_dosen   |
+--------------+
| Arif Budiman |
+--------------+
1 row in set (0.20 sec)

Bagaimana jika tabel utama di update? Mari kita coba:

mysql> INSERT INTO daftar_dosen VALUES 
('0160431112','Sarah','0812349900','Jakarta');
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO daftar_dosen VALUES 
('1180123464','Nurhayati Koto','0812349222','Jakarta');
Query OK, 1 row affected (0.04 sec)
 
mysql> SELECT * FROM dosen_jakarta;
+------------+----------------+---------+
| NIP        | nama_dosen     | alamat  |
+------------+----------------+---------+
| 0160431112 | Sarah          | Jakarta |
| 0576431001 | M. Siddiq      | Jakarta |
| 1080432007 | Arif Budiman   | Jakarta |
| 1180123464 | Nurhayati Koto | Jakarta |
+------------+----------------+---------+
4 rows in set (0.00 sec)

Terlihat bahwa VIEW juga otomatis diupdate.

Apakah kita bisa menambahkan data ke dalam VIEW? Berikut percobaannya:

mysql> INSERT INTO dosen_jakarta 
VALUES ('0801431222','Siti Nurbaya','Jakarta');
Query OK, 1 row affected (0.04 sec)
 
mysql> SELECT * FROM dosen_jakarta;
+------------+----------------+---------+
| NIP        | nama_dosen     | alamat  |
+------------+----------------+---------+
| 0160431112 | Sarah          | Jakarta |
| 0576431001 | M. Siddiq      | Jakarta |
| 0801431222 | Siti Nurbaya   | Jakarta |
| 1080432007 | Arif Budiman   | Jakarta |
| 1180123464 | Nurhayati Koto | Jakarta |
+------------+----------------+---------+
5 rows in set (0.00 sec)
 
mysql> SELECT * FROM daftar_dosen;
+------------+------------------+------------+-----------+
| NIP        | nama_dosen       | no_hp      | alamat    |
+------------+------------------+------------+-----------+
| 0160431112 | Sarah            | 0812349900 | Jakarta   |
| 0160436012 | Sabrina Sari     | 0812349900 | Pekanbaru |
| 0260432002 | Maya Ari Putri   | 0812345234 | Palembang |
| 0275430005 | Susi Indriani    | 0812656532 | Palembang |
| 0480432066 | Tia SariSantrini | 0812451177 | Padang    |
| 0576431001 | M. Siddiq        | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi       | 0812567678 | Papua     |
| 0801431222 | Siti Nurbaya     | NULL       | Jakarta   |
| 0869437003 | Arif Mustalifah  | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman     | 0812456345 | Jakarta   |
| 1180123464 | Nurhayati Koto   | 0812349222 | Jakarta   |
+------------+------------------+------------+-----------+
11 rows in set (0.00 sec)

Ternyata kita juga bisa melakukan update ke dalam VIEW. Namun karena tidak seluruh kolom dari tabel daftar_dosen yang tersedia di dalam VIEW dosen_jakarta, akan terdapat nilai NULL di dalam tabel daftar_dosen (kolom no_hp).


Dalam tutorial kali ini kita telah membahas tentang pengertian VIEW dan cara penggunaan VIEW dalam MySQL. Contoh yang saya gunakan memang sangat sederhana, dan mungkin tidak terlihat perubahan kecepatan akses antara VIEW dengan query biasa. Untuk query yang rumit serta melibatkan ratusan tabel, VIEW bisa memberikan pengaruh besar dalam performa MySQL Server.

Apa itu view di MySQL?

View dapat didefinisikan sebagai tabel maya (virtual) atau logical yang terdiri dari himpunan hasil query. Tidak seperti pada umumnya tabel di dalam basis data relasional, view bukanlah bagian dari skema fisik. View bersifat dinamis, ia mengandung data dari tabel yang direpresentasikannya.

Apa itu view Table?

Assalamualaikum wr wb, pada tulisan kali ini saya akan berbagi ilmu dengan judul Belajar Membuat Tabel View di MySql. Tabel View merupakan tabel virtual yang di buat dengan query tertentu untuk menampilkan data dari satu tabel atau lebih dengan tujuan untuk memudahkan dalam penyajian data.

Apa itu view pada SQL server?

View merupakan tabel virtual atau tabel logis yang dibangun dari operasi SELECT dan JOIN dari database yang sebenarnya. Dengan kata lain, database view merupakan ilusi (kembar tapi beda) dari tabel sebenarnya. View dipilih karena memiliki berbagai kelebihan sebagai berikut: View mempermudah query yang kompleks.

Mengapa kita perlu menggunakan view pada basis data?

Tujuan dari pembuatan VIEW adalah untuk kenyamanan (mempermudah penulisan query), untuk keamanan (menyembunyikan beberapa kolom yang bersifat rahasia), atau dalam beberapa kasus bisa digunakan untuk mempercepat proses menampilkan data (terutama jika kita akan menjalankan query tersebut secara berulang).