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.