STORED PROCEDURE Achmad Yasid, SKom
Pengertian Stored Procedure Prosedur (sub program)yang terdiri dari bagian deklaratif dan prosedural statemen SQL yang tersimpan pada katalog database MySQL Diaktifkan dengan memanggil nama dari stored procedure tersebut dari DBMS(query editor, procedure yang lain) atau program aplikasi Statemen deklaratif (CREATE, UPDATE, SELECT dll) Procedural language (IF-THEN-ELSE dan WHILE DO) Ketika memanggil stored procedure kita dapat menentukan Input dan Output prameter.
Statement Penyusun Stored Procedure Nama Stored Procedure Parameter Body
Contd. Stored Procedure Nama Procedure Parameter Body CREATE PROCEDURE DELETE_MHS (IN P_MHSID INTEGER) BEGIN DELETE FROM MAHASISWA WHERE ID_MHS = P_MHSID; END CREATE PROCEDURE DELETE_MHS (IN P_MHSID INTEGER) BEGIN DELETE FROM MAHASISWA WHERE ID_MHS = P_MHSID; END
Pemanggilan Stored Procedure Menggunakan Call Statement CALL DELETE_MHS (8) Akan menghapus data mahasiswa dengan ID mahasiswa = 8
Hasil kedua kode ini sama Answer := 'Y'; WHILE answer = 'Y' DO PRINT 'Do you want to remove all Mahasiswa (Y/N)? ' READ answer IF answer = 'Y' THEN PRINT 'Enter Mahasiswa ID: '; READ p_mhsid; CALL DELETE_MHS(p_mhsid); ENDIF; ENDWHILE; Hasil kedua kode ini sama call with the body of the procedure itself: PRINT 'Enter Mahasiswa ID : '; DELETE FROM Mahasiswa WHERE ID_MHS= :p_mhsid; Menggunakan Stored Procedure Tidak menggunakan Stored Procedure
Parameter Bentuk Umum :
Parameter Tipe parameter ada tiga IN data dapat dimasukkan pada stored procedure OUT Menghasilkan keluaran Store Procedure INOUT dapat berfungsi sebagai input dan output
Body Berisi semua statement yang akan dieksekusi. Diawali keyword BEGIN dan diakhiri END Statement SQL dapat berupa : DDL, DML DCL Procedural Language : IF-THEN-ELSE, WHILE-DO Dapat mendeklarasikan variabel (local variabel)
Body Local Variabel Variabel yang dapat menyimpan data sementara pada stored procedure Syntax : DECLARE NAMA_VARIABEL TIPE DATA Ditulis pada baris pertama setelah keyword begin Contoh : DECLARE NUM1 DECIMAL(7,2); DECLARE ALPHA1 VARCHAR(20);
Body Local Variabel Contoh : CREATE PROCEDURE TEST (OUT NUMBER1 INTEGER) BEGIN DECLARE NUMBER2 INTEGER DEFAULT 100; SET NUMBER1 = NUMBER2; END
Body Local Variabel Pemanggilan stored procedure CALL TEST (@NUMBER) SELECT @NUMBER The result is: @NUMBER ------- 100
Body SET Statement Digunakan untuk memberi nilai pada suatu variabel Contoh : SET NUMBER1 = NUMBER2; SET VAR1 := 1; SET VAR1 = 1, VAR2 = VAR1;
Body Flow Control <flow control statement> ::= <if statement> | <case statement> | <while statement> | <repeat statement> | <loop statement> | <leave statement> | <iterate statement>
Body Flow Control If Statement Contoh : CREATE PROCEDURE DIFFERENCE (IN P1 INTEGER, IN P2 INTEGER, OUT P3 INTEGER) BEGIN IF P1 > P2 THEN SET P3 = 1; ELSEIF P1 = P2 THEN SET P3 = 2; ELSE SET P3 = 3; END IF; END
End.