View digunakan untuk mempersimple penggunaan query yang panjang jika query yang panjang tersebut akan digunakan berulang-ulang kali. Hal ini tentu akan mempermudah programmer untuk melakukan query yang panjang tersebut dan meminimalisir kesalahan.
Sebagai contoh, saya memiliki table seperti ini :
1. t_murit
mysql> create table t_murit ( mid integer not null auto_increment, mname varchar(150), primary key ( mid )); mysql> desc t_murit; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | mid | int(11) | NO | PRI | NULL | auto_increment | | mname | varchar(150) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+2. t_kelas
mysql> create table t_kelas ( id integer not null auto_increment, mid integer, fval varchar(10), primary key ( id )); mysql> desc t_kelas; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | mid | int(11) | YES | | NULL | | | fval | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+3. t_jenis_kelamin
mysql> create table t_jenis_kelamin ( id integer not null auto_increment, mid integer, fval integer, primary key ( id )); mysql> desc t_jenis_kelamin; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | mid | int(11) | YES | | NULL | | | fval | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+----------------+4. t_point
mysql> create table t_nilai ( id integer not null auto_increment, mid integer, fval integer, primary key ( id )); mysql> desc t_nilai; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | mid | int(11) | YES | | NULL | | | fval | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+----------------+Selanjutnya, silahkan eksekusi query berikut untuk menambahkan value pada masing-masing tabel.
insert into t_murit (mname) values ('Syuaa'), ('Gadis'), ('Agus'), ('Indah'), ('Sobari'); insert into t_kelas (mid,fval) values(1,'1.5'), (2,'1.6'), (3,'1.1'), (4,'1.2'), (5,'1.1'); insert into t_jenis_kelamin (mid,fval) values(1,1), (2,2), (3,1), (4,2), (5,1); insert into t_nilai (mid,fval) values(1,10), (2,9), (3,6), (4,8), (5,9);Sehingga isi dalam tabel kita nanti jadi seperti ini :
mysql> select * from t_murit; +-----+--------+ | mid | mname | +-----+--------+ | 1 | Syuaa | | 2 | Gadis | | 3 | Agus | | 4 | Indah | | 5 | Sobari | +-----+--------+ mysql> select * from t_kelas; +----+------+------+ | id | mid | fval | +----+------+------+ | 1 | 1 | 1.5 | | 2 | 2 | 1.6 | | 3 | 3 | 1.1 | | 4 | 4 | 1.2 | | 5 | 5 | 1.1 | +----+------+------+ mysql> select * from t_jenis_kelamin; +----+------+------+ | id | mid | fval | +----+------+------+ | 1 | 1 | 1 | | 2 | 2 | 2 | | 3 | 3 | 1 | | 4 | 4 | 2 | | 5 | 5 | 1 | +----+------+------+ mysql> select * from t_nilai; +----+------+------+ | id | mid | fval | +----+------+------+ | 1 | 1 | 10 | | 2 | 2 | 9 | | 3 | 3 | 6 | | 4 | 4 | 8 | | 5 | 5 | 9 | +----+------+------+Secara umumnya, ketika kita ingin mengambil seluruh siswa beserta datanya, maka setidaknya kita harus mengekseskusi query sepanjang ini :
mysql> select t_murit.mid as mid, t_murit.mname as mname, t_kelas.fval as kelas, t_jenis_kelamin.fval as jenis_kelamin, t_nilai.fval as nilai from t_murit, t_kelas, t_jenis_kelamin, t_nilai where t_murit.mid = t_kelas.mid and t_murit.mid = t_jenis_kelamin.mid and t_murit.mid = t_nilai.mid; +-----+--------+-------+---------------+-------+ | mid | mname | kelas | jenis_kelamin | nilai | +-----+--------+-------+---------------+-------+ | 1 | Syuaa | 1.5 | 1 | 10 | | 2 | Gadis | 1.6 | 2 | 9 | | 3 | Agus | 1.1 | 1 | 6 | | 4 | Indah | 1.2 | 2 | 8 | | 5 | Sobari | 1.1 | 1 | 9 | +-----+--------+-------+---------------+-------+Dan tentu saja bisa terjadi kesalahan dalam pengetikan jika programmer harus mengetikkan query sepanjang itu setiap kali membutuhkan data siswa.
Untuk mengantisipasi terjadinya kesalahan dalam pengetikan berulang-ulang untuk query tersebut, maka view adalah solusi yang tepat untuk masalah ini.
Sekarang kita akan membuat sebuah view yang mewakili query panjang tersebut. Silahkan eksekusi query berikut :
mysql> create view v_murit as select t_murit.mid as mid, t_murit.mname as mname, t_kelas.fval as kelas, t_jenis_kelamin.fval as jenis_kelamin, t_nilai.fval as nilai from t_murit, t_kelas, t_jenis_kelamin, t_nilai where t_murit.mid = t_kelas.mid and t_murit.mid = t_jenis_kelamin.mid and t_murit.mid = t_nilai.mid;Dengan bermodalkan view ini, akan cukup mudah untuk melakukan pencarian data siswa keseluruhan atau dengan kriteria tertentu.
Selanjutnya, untuk menampilkan data siswa secara keseluruhan, kita bisa menggunakan query berikut :
mysql> select * from v_murit; +-----+--------+-------+---------------+-------+ | mid | mname | kelas | jenis_kelamin | nilai | +-----+--------+-------+---------------+-------+ | 1 | Syuaa | 1.5 | 1 | 10 | | 2 | Gadis | 1.6 | 2 | 9 | | 3 | Agus | 1.1 | 1 | 6 | | 4 | Indah | 1.2 | 2 | 8 | | 5 | Sobari | 1.1 | 1 | 9 | +-----+--------+-------+---------------+-------+Untuk menampilkan data siswa dengan id 4, bisa dengan menggunakan query berikut :
mysql> select * from v_murit where mid = 4; +-----+-------+-------+---------------+-------+ | mid | mname | kelas | jenis_kelamin | nilai | +-----+-------+-------+---------------+-------+ | 4 | Indah | 1.2 | 2 | 8 | +-----+-------+-------+---------------+-------+