stored procedure & trigger

Click here to load reader

Upload: zahratul-ainiyah

Post on 27-Nov-2015

157 views

Category:

Documents


8 download

TRANSCRIPT

STORED PROCEDURE

STORED PROCEDURE & TRIGGERSTORED PROCEDUREPENGERTIANStored procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah procedure (mirip dengan di pemrograman biasa) yang mempunyai nama dan kegunaan tertentu. Atau juga dapat di artikan sebagai kumpulan kode (prosedur) yang terdiri dari SQL statement yang deklaratif seperti CREATE, UPDATE, dan SELECT, atau dilengkapi dengan procedural statements, seperti IF-THEN-ELSE and WHILE- yang tersimpan dalam katalog dari sebuah basis data yang bisa diaktifkan dengan memanggilnya dari sebuah program.Kegunaan / Manfaat dari stored procedure Improve performance, stored procedure dapat meningkatkan performa aplikasi dan mengurangi akses database. Pada umumnya akses database adalah melalui jaringan, dimana pada saat tertentu dapat menyebabkan performa yang buruk dalam hal akses aplikasi ke database, dengan menggunakan stored procedure hal ini dapat dihindari.Improve securityReusable Informasi tambahan adalah stored procedure juga sangat bermanfaat pada saat penghapusan, dan proses update sejumlah besar data. Pada db2 dimungkinkan pembuatan cursor dalam stored procedure.Parameter pada stored procedure Pada proses pembuatan stored procedure kita dapat memberikkan parameter yang memiliki kegunaan tertentu pada stored procedure yang kita buat, tergantung dengan tipe dari parameternya. Tipe parameter pada stored procedure dapat dikelompokkan menjadi tiga, yaitu :Parameter IN. Parameter jenis ini digunakan hanya untuk input saya. Jika parameter ini diubah nilainya di dalam stored procedure, maka tidak akan mempengaruhi nilai variablenya setelah stored procedure dieksekusi. Parameter ini boleh dari variable atau nilai langsung Parameter OUT. Parameter jenisini digunakan untuk mengeluarkan hasil proses dalam stored procedure agar bisa diterima di luar procedure. Parameter ini hanya boleh menggunakan variable. Parameter INOUT. Gabungan dari IN dan OUT. Dapat mengirim dan menerima nilai variable. Parameter ini hanya boleh menggunakan variable.Sintak untuk menghapusDROP {PROCEDURE}[IF EXIST] sp_nameContoh :Drop Procedure spDafGaji;Sintak untuk memanggilCALL sp_name

PERCABANGANPernyataan IF IF Kondisi THEN statement_list[ELSEIF Kondisi THEN statement_list] ...[ELSE statement_list]END IFPernyataan CASEStruktur statement CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list]END CASE

PERULANGAN Statement REPEAT Akan melakukan perulangan selama kondisi masih bernilai FALSE. Perulangan akan berhenti ketika kondisi bernilai TRUE. Struktur REPEAT :REPEAT perintah-perintah UNTIL kondisi_loop END REPEAT Statement WHILE Akan melakukan perulangan selama kondisi masih bernilai TRUE. Perulangan akan berhenti ketika kondisi bernilai FALSE. Struktur WHILE WHILE kondisi DO perintah-perintah END WHILE

Statement LOOP LOOP merupakan bentuk perulangan. Kondisi perulangan biasanya dilakukan dengan membuat sebuah pernyataan IF dan digabung dengan LEAVE untuk keluar dari LOOP, atau ITERATE untuk melakukan perulangan lagi. Struktur LOOP [nama_label:]LOOP [IF kondisi THEN {LEAVE/ITERATE} namal_label] perintah-perintah [IF kondisi THEN {LEAVE/ITERATE} namal_label]END LOOP [nama_label]

Delimiter |Create procedure sp_tampilplayers( nmr smallint(6))BeginSelect * from tbl_players where PLAYERNO = nmr;end |Delimiter

TRIGGERPENGERTIAN Menurut Wikipedia, trigger dalam database diartikan sebagai procedural code that is automatically executed in response to certain events on a particular table or view in a database.Singkatnya.Singkatnya, trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view.MANFAATTrigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel.

Trigger sering digunakan, antara lain untuk:

Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam system penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.

Manipulasi TriggerAFTER/BEFOREInsertUpdateDeleteSintaks CREATE TRIGGER nama_trigger waktu eventON nama_tabel FOR EACH ROW BEGINperintah..END;

Ket :Nama_trigger : bebas Waktu : Kapan prodesur dilaksanakan (misal : AFTER setelah,BEFORE-sebelum )Event: perintah SQL (INSERT,UPDATE,DELETE,SELECT, dll)

Contoh 1Misalkan kita punya data di table DaftarSiswa

Di tabel yang lain kita juga punya tabel Daftar Nilai :

Daftar nilai ini belum ada isinya yang nantinya akan kita isi dengan perintah INSERT.

TRIGGER tr_statusdaftarnilaiINSERT, UPDATE

DECLARE @kode char(4)DECLARE @nilai floatSELECT @kode = kode, @nilai = nilai FROM daftarNilaiIF @nilai >= 60daftarSiswa SET status = Lulus WHERE kode=@kodeELSE UPDATE daftarSiswa SET status = Tidak Lulus WHERE kode=@kode*dijalankan di Query Analyzer,

Maka table tang dihasilkan

By : Irfan Zulkarnain

Contoh 2Bila diciptakan trigger sbb:

CREATE TRIGGER coba AFTER INSERTON tes1 FOR EACH ROW BEGININSERT INTO tes3 SET Nomhs3=NEW.Nomhs1 DELETE FROM Tes2 WHERE Nomhs2=NEW.Nomhs1END;

Ket :NEW: mewakili tabel utama triger (tes1)

Bila kemudian terdapat perintah INSERT yang dijalankan, misal :

INSERT INTO tes1(nomhs,nama) values (90001,Gita Anjana)

Contoh 3MembuatTriggerbeli_barang

CREATE TRIGGER beli_barang after INSERT ON beli FOR EACH ROW BEGIN INSERT INTO stok SET id_VCD = NEW.id_VCD , jumlah=New.jumlah ON DUPLICATE KEY UPDATE jumlah=jumlah+New.jumlah; END

Keterangan :Triggerdibuat dengan nama beli_barang dan bekerja setelah insert data pada tabel beli, maka akan insert juga pada tabel stok dengan mengisi field pada tabel stok berupa id_VCD dan jumlah sama persis yang di insert di tabel beli. Dan Metode updatenya adalah jumlah yang ada ditambah dengan jumlah baru yang di insert kan di tabel beli. Jika awal insert otomatis tidak ada penjumlahan, karena logika nya jumlah barang yang ada di tabel stok adalah nol

MembuatTriggerjual_barang

CREATE TRIGGER jual_barang after INSERT ON jual FOR EACH ROW BEGINUPDATE stokSET jumlah = jumlah - NEW.jumlahWHERE id_VCD = NEW.id_VCD; END$$

Table jual barang

Hasil dari table stok

By : Zahratul AiniyahKlausa yang dapat digunakanKlausa yang dapat digunakan pada trigger adalah klausa WHEN. Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi tertentu, maka digunakan klausa WHEN.KESIMPULAN

Kesimpulannya, Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE dan salah satu manfaatTriggeradalah membantu administrasi database dengan teknik memanipulasi data sesuai dengan yang dibutuhkan.