Pengertian Stored Procedure - Stored Procedure adalah sebuah kelompok kode SQL yang di simpan di katalog database dan dapat di panggil kemudian oleh program, trigger atau bahkan stored procedure.Sebuah Stored Procedure yang memanggil diri nya sendiri di sebut rekursif stored procedure. Mysql sendiri mendukung penggunaan Stored Procedure sejak MySQL versi 5.x ke atas.
Keuntungan penggunaan Stored Procedure
- Meningkatkan performance aplikasi.
Sebuah Stored Procedure di simpan dan di compile di katalog database yang mana dapat di eksekusi lebih cepat di bandingkan SQL yang tidak di compile dari kode aplikasi. - Mengurangi traffic antara aplikasi dan database server.
Aplikasi hanya mengirim nama stored procedure untuk mengeksekusi SQL. - Dapat di gunakan kembali dan transparent ke aplikasi yang ingin menggunakan nya.
- Aman.
Penggunaan Stored Procedure dapat di akses hak nya oleh aplikasi oleh Database Administrator
Kerugian penggunaan Stored Procedure
- Dapat mengakibatkan Database server membutuhkan memory dan prosessor lebih tinggi.
- Stored procedure hanya berisi SQL deklaratif, sehingga sangat sulit untuk menulis sebuah procedure dengan kompleksitas logika, seperti bahasa pemrograman yang di gunakan untuk memprogram aplikasi.
- Stored procedure tidak dapat di debug di hampir RDBMS, termasuk MySQL.
- Membutuhkan keahlian khusus untuk menulis dan me maintain stored procedure yang tidak setiap developer memiliki, sehingga dapat membuat ribet
Membuat Stored Procedure
delimeter //
create procedure nama_mhs()
begin
select * from mahasiswa;
end //
delimeter ;
Kita memulai nya dengan delimeter //dan di akhiri dengan // delimeter ;
Body sql di mulai dengan begindan di akhiri dengen end.
Memanggil Stored Procedure
call nama_stored_procedure( )
Contoh :
call nama_mhs( );
Variabel di Stored Procedure
Variabel di gunakan untuk menyimpan prosedure ke penyimpanan hasil dengan
segera. Anda dapat mendeklarasikan sebuah variabel dengan syntax berikut :
DECLARE nama variabel tipe data (ukuran) DEFAULT nilai default;
Contoh :
DECLARE total_sales INT DEFAULT 0
Memberi Nilai ke variabel
Terdapat beberapa cara memberi nilai ke variabel, yaitu dengan cara :
- SET
Contoh :
DECLARE total_count INT DEFAULT 0
SET total_count =0
- SELECT … INTO
DECLARE total_product INT DEFAULT 0
SELECT COUNT(*) INTO total_products FROM products
Ruang Lingkup Variabel
Sebuah variabel hanya berlaku di dalam ruang lingkup nya masing-masing, yaitu di
antara BEGIN dan END. Sebuah variabel yang di awali dengan tanda @, di sebut
dengan variabel session, yang tetap ada hingga session berakhir.
Parameter dalam Stored Procedure
Paramater, terdiri dari 3 bentuk, yaitu :
- IN
- OUT
- INOUT
IN : Mode Default. Dapat di gunakan di dalam sebuah stored procedure, namun stored procedure tidak dapat merubah nilai nya.
OUT : Parameter ini dapat di rubah oleh sebuah stored procedure yang di lewati nya.
INOUT : Dapat melewati stored procedure dan mendapatkan kembali nilai nya yang berbeda dari program yang memanggil.
Syntax untuk mendefinisikan sebuah parameter:
MODE nama_parameter tipe_parameter (ukuran parameter)
Contoh :
DELIMETER //
CREATE PROCEDURE tahun_mahasiswa(IN tahun_nrp VARCHAR (255))
BEGIN
SELECT nrp,nama FROM mahasiswa WHERE left(nrp,2)=tahun_nrp
END //
DELIMETER ;
Dalam contoh di atas, kita mendapatkan,nrp dan nama yang filter nya adalah
left(nrp,2)=tahun_nrp
Untuk memanggil nya, kita menggunakan :
CALL tahun_mahasiswa('10')
Demikianlah ulasan tentang Stored procedure, baca juga tentang syntax sql