Selasa, 27 September 2011

NIM / NAMA : 10410100261 / Aprily Surya Rizanda Saputra
Dosen : Tan Amelia
Judul : Stored Procedure, Function dan Trigger


1.    Stored Procedures
Contoh dengan parameter “IN”
-       Misal dibuat Stored Procedure untuk menampilkan data pegawai untuk jabatan tertentu saja, sehingga saat dipanggil deperlukan parameter berupa kode jabatan yang akan ditampilkan
CREATE PROCEDURE sp_peg_jabatan (kdjabat char (2))
select nip,namapeg,p.kodejabat,namajabat
from pegawai p left join jabatan j
on j.kodejabat = p.kodejabat
WHERE p.kodejabat = kd.jabat;
Untukk memanggil :
Call sp_peg_jabatan(‘01’);
-       Parameter berupa kode jabatan berupa nilai 01

Contoh dengan parameter “OUT”
-       Misal dibuat Stored Procedure untk mengetahui jumlah pegawai
-       Diperlukan parameter OUT untuk menampung hasil perhitungan jumlah pegawai
CREATE PROCEDURE sp_jum_peg (OUT jum int)
SELECT count(*) INTO jum FROM pegawai;
QUERY OK, 0 rows affected (0.00 sec)
call sp_jum_peg(@n);
selcet @n
@n
4
1 row in set (0.08 sec)

Contoh dengan parameter “INOUT”
-       Misal dibuat Stored Procedure untuk merubah tampilan No Telepon, dibutuhkan parameter masukan notelp yang sekaligus akan digunakan sebagai hasil keluaran
CREATE PROCEDURE
sp_telpon (INOUT notelp varchar (20))
SELECT LONCAT(“(“,left(notelp,3),”)”,
substring(notelp,4,3),”-”,substring(notelp,7))
INTO notelp;
SET @tlp = ‘021234567’;
call sp_telpon(@tlp);
select @tlp;
@tlp
(021) 234-567

Contoh dengan parameter “IN dan OUT”
-       Misal akan dibuat Stored Procedure untuk mengetahui Jumlah Pegawai untuk jabatan tertentu, maka dibutuhkan parameter yang dikirimkan berupa kode jabatan (kdjabat) dan juga parameter untuk menampung hasil perhitungan (jum)
CREATE PROCEDURE
sp_jum_peg_jabat(IN kdjabat char(2), OUT jum int)
SELECT count(*) INTO jum FROM pegawai
WHERE kodejabat = kdjabat;
call sp_jum_peg_jabat(’02’,@n);
select @n;
@n
3

2.    Function
Contoh 1:
CREATE FUNCTION AdditionOK(@Number1 Decimal(6,2))
RETURNS Decimal(6,2)
BEGIN
    RETURN @Number1 + 1450
END
Contoh 2:       
CREATE FUNCTION AdditionTWO(@Number1 Decimal(6,2),
             @Number2 Decimal(6,2))
RETURNS Decimal(6,2)
BEGIN
    DECLARE @Result Decimal(6,2)
    SET @Result = @Number1 + @Number2
    RETURN @Result
END


3.    Trigger
Contoh :
create database mytrigger;
create table coba (kode varchar(5) not null,nama varchar(35) not null,primary key (kode)) create table coba2 (kode varchar(5) not null,nama varchar(35) not null,primary key (kode)) create table tran (kode varchar(5) not null,kodetran varchar(5),jumlah double,primary key nkode (kode,kodetran))

delimiter $$
create trigger auto_insert_coba2before insert on coba for each rowbegin insert into coba2 (kode,nama) values (NEW.kode,NEW.nama);
end$$
create trigger auto_update_coba2before update on coba for each rowbegin update coba2 set nama=NEW.nama where kode=NEW.kode;
end$$
create trigger auto_delete_coba2before delete on coba for each rowbegin delete from coba2 where kode=OLD.kode;
delete from tran where kode=OLD.kode;
end$$

Tidak ada komentar:

Poskan Komentar