STORED PROCEDURE
Download
Report
Transcript STORED PROCEDURE
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
CREATE PROCEDURE DELETE_MHS
(IN P_MHSID INTEGER)
Parameter
BEGIN
DELETE FROM MAHASISWA
WHERE ID_MHS = P_MHSID;
END
Body
Pemanggilan Stored
Procedure
Menggunakan Call Statement
CALL DELETE_MHS (8)
Akan menghapus data mahasiswa dengan ID
mahasiswa = 8
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;
Menggunakan
Stored Procedure
Hasil kedua kode ini sama
call with the body of the procedure itself:
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;
DELETE
FROM Mahasiswa
WHERE ID_MHS= :p_mhsid;
ENDIF;
ENDWHILE;
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.