biasanya view di buat untuk menyederhanakan pengambilan data, yang dimana query sebenarnya ribet, misalkan di tabel tersebut terdapat join, grup by, agregasi (sum, min, max dsb).
oke deh... kita mulai aja cara bikinnnya gimana,
kasus yang akan diambil adalah tentang nilai siswa, dimana di databases tersebut ada tiga buah tabel:
- tabel pertama untuk menyimpan biodata siswa
- tabel kedua untuk menyimpan mata pelajara
- tabel ketiga untuk menyimpan nilai,
1. tbl_siswa (tabel untuk menyimpan biodata siswa)
CREATE TABLE `sisfo_sekolah`.`tbl_mp` (
`mp` char(10) NOT NULL,
`nama` varchar(255) NOT NULL,
PRIMARY KEY (`mp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
2. tbl_mp (tabel untuk menyimpan mata pelajaran)
CREATE TABLE `sisfo_sekolah`.`tbl_mp` (
`mp` char(10) NOT NULL,
`nama` varchar(255) NOT NULL,
PRIMARY KEY (`mp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
3. tbl_nilai (tabel untuk menyimpan nilai2 siswa)
CREATE TABLE `sisfo_sekolah`.`tbl_nilai` (
`kode` varchar(255) NOT NULL,
`nis` char(10) NOT NULL,
`mp` char(10) NOT NULL,
`nilai` int(11) NOT NULL,
PRIMARY KEY (`kode`),
KEY `nis_fk_constraint` (`nis`),
KEY `mp_fk_constraint` (`mp`),
CONSTRAINT `mp_fk_constraint` FOREIGN KEY (`mp`) REFERENCES `tbl_mp` (`mp`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `nis_fk_constraint` FOREIGN KEY (`nis`) REFERENCES `tbl_siswa` (`nis`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
jadi ketiga tabel di atas tadi untuk intinya adalah tabel-tabel yang yang, dibutuhkan untuk menghasilkan nilai-nilai siswa dari setiap mata pelajaran.
sekarang kita ingin membuat sebuah report yang dimana di report tersebut memilik field nis, nama_siswa, nama_matapelajaran, nilai, yang dimana akan dimplementasikan query tersebut menjadi sebuah view, dibawah ini adalah cara membuat nya,
CREATE VIEW `view_nilai`
AS select `n`.`nis` AS `nis`,
`n`.`nilai` AS `nilai`,
`s`.`nama` AS `nama_siswa`,
`m`.`nama` AS `mata_pelajaran`
from ((`tbl_nilai` `n` join `tbl_siswa` `s` on((`n`.`nis` = `s`.`nis`))) join `tbl_mp` `m` on((`n`.`mp` = `m`.`mp`)))
setelah view terbuat dengan query yang cukup kompleks seperti diatas, maka untuk untuk mendapat nilai siswa berikutnya kita cukup memanggil view nya saja seperti di bawah ini,
select * from view_nilai
nah... udah bisa menangkapnya-kah maksud gw... selamat mecoba, dan semoga membantu
aku mau buat "view_laba". field2nya seperti di bawah ini, udah aku ketik di perintah SQL di Mysql, datanya udah tampil, tapi bagaimana cara menyimpan view_laba tersebut?, supaya nanti bisa langsung di panggil view_laba.
ReplyDeleteSELECT beli.faktur, beli.kodesupplier, supplier.namasupplier, beli.tanggalbeli, detail_beli.kodebarang, detail_beli.hargabeli, detail_beli.jumlahbeli, (detail_beli.hargabeli*detail_beli.jumlahbeli) AS subtotal, (barang.hargajual-barang.hargabeli) AS laba
FROM ((beli INNER JOIN supplier ON beli.kodesupplier = supplier.kodesupplier) INNER JOIN detail_beli ON beli.faktur = detail_beli.faktur) INNER JOIN barang ON detail_beli.kodebarang = barang.kodebarang;
tinggal di tambahkan saja DDL untuk bikin view nya. contohnya seperti ini
ReplyDeleteCREATE VIEW `"view_laba" AS [SQL labanya ditulis disini]
Selanjutnya Anda cukup menuliskan SELECT * FROM view_laba untuk mendapatkan data mengeniai laba
wah makasih yah infonya, blog dendie ini sangat membantu saya..
ReplyDeletesip lah....
ReplyDeletesaya blh tny??????
ReplyDeleteklw cth na gni,,
...no_NPM
093510126
093510128
nama_mhs
tiwi
oka
alamat
jl.surya
jl.kelapa
select,no_mhs,nama,from,table_mhs;
...soalnya:
1. panggil viewnya
2. dimana view tersimpan
3. bagaimana mengapus view..
gmn cr na nie????????
1. Panggil View ?
ReplyDeletesebelum memanggil view, membuat view dahulu untuk query tersebut.
- Membuat View
CREATE VIEW `view_mhs` AS SELECT no_mhs,nama FROM table_mhs
- Memanggil View
SELECT * FROM view_mhs
2. dimana view tersimpan ?
view tersimpan di database, untuk melihat ya, bisa menggunakan MySQL GUI seperti navicate, maka view tersebut akan terlihat seperti table
3. bagaimana mengapus view ?
DROP VIEW view_mhs
bentuk umum view?
ReplyDeletebentuk atau pola penulisa view adalah seperti ini.
ReplyDeleteCREATE VIEW [nama view] AS [tuliskan query]
mau tanya doong ...
ReplyDeletesaya dapet tugas untuk membuat contoh view dengan perintah DDL:
CREATE
ALTER
DROP
nah saya baru bisa menemukan create view dan drop view saja...
kalo yang alter view itu gimana yaaa???
mohon bantuannya
terima kasih sebelumnya :)
begini aja gan... contoh nya begini
ReplyDeleteALTER VIEW view_nilai AS select * from siswa
atau bisa dilihat di
http://dev.mysql.com/doc/refman/5.0/en/alter-view.html
http://www.roseindia.net/mysql/mysql5/views.shtml
mw nanya mas.. misalkan tabel2 tersebut sudah dibuatkan view.. cara mengetahui bahwa ada view diantara query tabel2 tersebut gmn..?
ReplyDeleteKalau ingin mendapatkan informasi mengenai tabel-tabel yang digunakan oleh suatu view saya belum pernah menemukan caranya.
ReplyDeleteTetapi apabil ingin mengetahui view yang terdapat dalam sebuah database dapat menggunakan cara dibawah ini.
select TABLE_NAME from information_schema.VIEWS where TABLE_SCHEMA = '[NAMA DATABASE]'
contoh
select TABLE_NAME from information_schema.VIEWS where TABLE_SCHEMA = 'sirapphp'
Hasil
+----------------------------+
| TABLE_NAME |
+----------------------------+
| view_reklame_ijin_terakhir |
| view_reklame_report |
+----------------------------+
mau nanya........
ReplyDeletegmn caranya menampilkan record yg qt input melalui textboxt, bisa terlihat di grid.... di vb 6.0 yg tabelnya dari mysql mas...
semisal mau menampilkan data tertentu saja di view. misal ak punya view isinya ada produk,banyak,harga,total.
ReplyDeletedan ak cuma mau menampilkan total terbesar gimana caranya gan?thx
Thanks mas, Bermanfaat banget infonya. hehe
ReplyDeleteMakasih :)
DeleteBang tanya Nih saya ada tabel Begini
ReplyDeleteID,Judul Buku,tgl_masuk
1,ber cocok tanam 1,1 januari 1998
2,ber cocok tanam 1,10 maret 1998
3,Tutorial MySQL 1,10 maret 1998
4,Tutorial MySQL 1,10 April 1998
5,Tutorial MySQL 1,10 juli 1998
6,Komputer pemula ,10 juni 1998
Saya ingin membuat view yang manampilkan seperti ini
ID,Judul Buku,tgl_masuk,jumlah
1,ber cocok tanam 1,1 januari 1998,2
2,ber cocok tanam 1,10 maret 1998,2
3,Tutorial MySQL 1,10 maret 1998,3
4,Tutorial MySQL 1,10 April 1998,3
5,Tutorial MySQL 1,10 juli 1998,3
6,Komputer pemula ,10 juni 1998,1
Gimana bang tuh statement SQL nya, pakek JOIN Gak jadi2 bang bisa di bantu? kalau berkenan kirim email ke smpn1jaya@gmail.com SQLnya
min tau gak gimana caranya 'show tables' tapi view nya jangan ikut mncul juga?
ReplyDeleteBisa caranya seperti ini :
Deleteselect TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = '[nama database]'
Contoh :
select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'akademik'
contoh syntaxnya update pada view 2 tau gak?
ReplyDeletemengapa view itu lebih optimal dibandingkan select..???
ReplyDeletemengapa view itu dibilang kode rahasisa untuk menampilkan sebuah data..???
1. View di buat untuk menyerderhanakan pengambilan data, yang dimana query sebenarnya ribet.
Delete2. View adalah buka kode rahasia.
CREATE VIEW `view_nilai`
ReplyDeleteAS select `n`.`nis` AS `nis`,
`n`.`nilai` AS `nilai`,
`s`.`nama` AS `nama_siswa`,
`m`.`nama` AS `mata_pelajaran`
from ((`tbl_nilai` `n` join `tbl_siswa` `s` on((`n`.`nis` = `s`.`nis`))) join `tbl_mp` `m` on((`n`.`mp` = `m`.`mp`)))
maksudnya n,s,m apa ya gan? thnks
siank mas..
ReplyDeletemau nanya dunks, saya lupa menyimpan script view pada program saya.. adakah cara untuk menemukan script tersebut?
tx
mas mau tanya,
ReplyDeletekalau mau buat view dari sub query gmn ya??
kok malah kayak gini hasilnya Error Code : 1349
View's SELECT contains a subquery in the FROM clause
(32 ms taken).
sub query nya gini mas :
select nama_dos from (select nama_dos, count(*) as jml from dosen natural join krs natural join mkuliah group by nama_dos having jml >=2) as dummy;
tolong ya mas :D
min punya contoh repot dri vb.net 2008 ke word gak.
ReplyDeleteminta syntax nya, yg di kasih dri guru error terus.
barang kali ada yg lain
Pak saya mohon bantuannya, kira2 dimana kesalahannya karena setiap saya enter selalu muncul pesan error. Create view daftarkuliah as select dosen.NIP, dosen.Namadosen, mahasiswa.NIM, mahasiswa.Namamahasiswa, mahasiswa.Jurusan, mahasiswa.Prodi, matakuliah.Kd_Matakuliah, matakuliah.Namamatakuliah, matakuliah.Jlh_SKS from matakuliah inner join dosen on matakuliah.NIP=dosen.NIP inner join mahasiswa on matakuliah.NIM=mahasiswa.NIM; Saya mohon bantuannya dengan sangat. Trims sebelumnya
ReplyDelete