Prosedur MySQL
Prosedur MySQL
(STORE PROCEDURE)
Stored procedure adalah salah satu objek MySQL, yang dapat digunakan untuk menyimpan
sekumpulan perintah SQL, serta dapat dipanggil sewaktu-waktu
Stored procedure sangat berguna ketika kita tidak menginginkan user mengakses table secara
langsung (atau dengan kata lain membatasi hak akses user). Dengan demikian resiko
kebocoran dan kerusakan data dapat lebih diminalisir.
Alasan utama mengapa Stored Procedure digunakan dalam sebuah sistem aplikasi
adalah :
1. Program lebih ringkas dan cepat, dengan Stored procedure, SQL atau query akan
tersimpan di sisi server. Program aplikasi cukup memanggil Stored procedure yang
diinginkan,
dan selanjutnya
Contoh :
DELIMITER $$
CREATE PROCEDURE sp_lihat_dosen (
)
BEGIN
SELECT * FROM tb_dosen;
END$$
DELIMITER ;
Tekan F9 untuk menjalankan,
Jika sukses, perhatikan bahwa sp_lihat_dosen telah terdaftar pada Store Procedures
Untuk menjalankan :
CALL sp_lihat_dosen() ;
KODE_DSN
-------46001
46002
46003
46004
46006
46007
46008
NAMA_DSN
------------------HOTMAN PANJAITAN
ROENADI KOESDIJARTO
GERI KUSNANTO
AGUS DARWANTO
ERY SADEWA
BAMBANG SETIAWAN
ASTRID E.P
ALAMAT
----------Penjaringan
Sidokare
Semolowaru
Mojokerto
Sidoarjo
Semolowaru
Semolowaru
TGL_LHR
---------1950-01-03
1955-01-10
1960-02-11
1960-01-20
1955-09-20
1964-01-20
1969-01-11
AGAMA
-----2
1
1
1
1
1
1
KELAMIN
------P
P
P
P
P
P
W
GOL
-----4
3
3
3
3
2
2
DELIMITER $$
CREATE PROCEDURE sp_lihat_dosen2 (
)
BEGIN
SELECT kode_dsn, nama_dsn, alamat
FROM tb_dosen
;
END$$
DELIMITER ;
Tekan f9 untuk menjalankan
CALL sp_lihat_dosen2() ;
kode_dsn
-------46001
46002
46003
46004
46006
46007
46008
nama_dsn
------------------HOTMAN PANJAITAN
ROENADI KOESDIJARTO
GERI KUSNANTO
AGUS DARWANTO
ERY SADEWA
BAMBANG SETIAWAN
ASTRID E.P
alamat
----------Penjaringan
Sidokare
Semolowaru
Mojokerto
Sidoarjo
Semolowaru
Semolowaru
Selanjutnya adalah prosedur berparameter. Parameter adalah nilai yang diberikan kepada
prosedur untuk diolah.
DELIMITER $$
CREATE PROCEDURE sp_lihat_dosen3 (
_kode CHAR(6)
)
BEGIN
SELECT kode_dsn, nama_dsn, alamat
FROM tb_dosen
WHERE kode_dsn = _kode
;
END$$
DELIMITER ;
Tekan f9 untuk menjalankan
CALL sp_lihat_dosen3('46002') ;
kode_dsn
-------46002
nama_dsn
------------------ROENADI KOESDIJARTO
alamat
-------Sidokare
CALL sp_lihat_dosen3('46003') ;
kode_dsn
-------46003
nama_dsn
------------GERI KUSNANTO
alamat
---------Semolowaru
Pada contoh diatas, nilai yang diberikan kepada prosedur saat dipanggil (call) adalah 46002
dan 46003.
Kedua nilai itulah yang disebut parameter.