Function dan Procedure
A . Function
Function dapat
digunakan secara langsung dalam statement select, update dan delete . Hasil
dari function dapat dikembalikan sebagai output. Sebuah function hanya dapat
mengembalikan sebuah nilai.
* Cara
membuat Function menggunakan syntax :
CREATE
FUNCTION function_name ([func_parameter[,...]])
RETURNS type
routine_body
Function
menerima parameter (func_parameter) yang didefinisikan dengan nama parameter
beserta tipe datanya. Pembuatan function juga perlu pendefinisian tipe data
nilai yang dikembalikan oleh fungsi menggunakan statement RETURNS. Definisi apa
yang dilakukan oleh sebuah fungsi diletakkan pada routine_body diapit oleh
BEGIN dan END.
* Contoh pembuatan
fungsi :
Mysql > DELIMITER //
Mysql >
CREATE FUNCTION full_name( in_first_name VARCHAR(15), in_last_name VARCHAR(15))
-> RETURNS VARCHAR(35)
-> BEGIN
-> RETURN CONCAT(in_first_name,'
',in_last_name);
-> END//
- · Melihat
function yang telah kita buat
Function
apa saja yang telah kita buat dapat kita lihat menggunakan statement show
function status
Syntax
: mysql> SHOW FUNCTION STATUS;
Function yang
telah dibuat dapat dihapus menggunakan DROP FUNCTION nama_function.
Syntax : mysql> DROP FUNCTION full_name; kemudian
mysql > show function status;
B.
Procedure
Procedure dapat
berisi statement SQL atau operasi lain yang disimpan dalam database. Sebuah
procedure dapat dipanggil menggunakan statement call nama_procedure disertai parameter
yang diperlukan.
Syntax : CREATE
PROCEDURE sp_name ([proc_parameter[,...]])
* contoh
pembuatan stored procedure :
mysql> DELIMITER //
mysql> CREATE PROCEDURE show_employees()
-> BEGIN
-> SELECT * FROM
employee;
-> END //
mysql> DELIMITER ;
mysql> CALL show_employees();
- ·
Parameter
dalam procedure
Procedure
menerima parameter (proc_parameter) yang didefinisikan sebagai berikut:
proc_parameter:
Dalam parameter
procedure, didefinisikan jenis parameter, yaitu IN, OUT, atau INOUT. Bila tidak
dispesifikasikan saat pembuatan, maka default jenis parameter yang dipilih
adalah IN.
- Parameter IN mengirimkan sebuah nilai ke dalam
procedure. Procedure bisa saja merubah nilai parameter ini, namun perubahan
tersebut tidak visibel terhadap pemanggil procedure ketika procedure tersebut
selesai.
- Parameter OUT
mengirimkan nilai dari procedure ke pemanggil. Nilai inisial dari parameter ini
adalah NULL dan
nilainya visibel terhadap pemanggil.
- Parameter INOUT
diinisialisasi oleh pemanggil, dapat dimodifikasi oleh procedure, dan perubahan
nilai parameter visibel terhadap pemanggil ketika procedure selesai.
n Parameter IN
Ø contoh
penggunaan parameter IN:
mysql>
DELIMITER $$
mysql>
CREATE PROCEDURE getEmployeeByCity (IN cityName VARCHAR(255))
-> BEGIN
-> SELECT * FROM employee WHERE city
LIKE cityName;
-> END $$
n Parameter OUT
Ø contoh
penggunaan parameter OUT :
mysql>
DELIMITER :)
mysql>
CREATE PROCEDURE getNumEmployee (OUT numEmployee INT)
-> BEGIN
-> SELECT COUNT(*) INTO numEmployee FROM
employee;
-> END :)
n Parameter INOUT
Ø
contoh
penggunaan parameter INOUT:
mysql> DELIMITER ^^
mysql> CREATE PROCEDURE
increase(INOUT number INT)
-> BEGIN
-> SET number = number + 15;
-> END ^^
mysql> DELIMITER ;
Pada contoh di
atas, kita membuat procedure increase untuk menambahkan input dengan nilai 15.
Memodifikasi nilai parameter input dilakukan dengan menggunakan SET.
- ·
Melihat
procedure yang telah dibuat
Procedure yang
telah kita buat dapat dilihat menggunakan statement show procedure status.
Syntax sebagai
berikut :
mysql> SHOW
PROCEDURE STATUS;
Procedure yang
telah kita buat dapat dihapus menggunakan DROP PROCEDURE.
Syntax :
mysql> DROP PROCEDURE increaseSalary;