Procedure dan Function
Procedure
Penulisan untuk membuat procedure dalam MySQL adalah sebagai berikut.
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
Function
CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
Keterangan
1. proc_parameter (hanya pada procedure):
[ IN | OUT | INOUT ] param_name type
• IN parameter dilewatkan ke dalam procedure tetapi modifikasi nilai dari parameter ini tidak kelihatan setelah procedure tersebut dipanggil.
• Out parameter merupakan parameter yang dilewatkan dari dalam procedure ke pemanggil procedure tersebut. Nilai inisialisasi saat memanggil adalah null dan hasil parameter akan kelihatan setelah procedure dipanggil.
• INOUT parameter diinisilaisai oleh pemanggil procedure, kemudian hasil modifikasinya tersebut akan kelihatan setelah procedure tersebut dipanggil.
2. characteristic
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
3. routine_body:
Valid SQL procedure statement
Routine body berisi syntax-syntax sql yang valid, seperti insert atau select. Bisa juga berisi compound. Compount diapit oleh begin… end. Syntax dari compound system adalah sebagai berikut.
[begin_label:] BEGIN
[statement_list]
END [end_label]
Compound ini bisa diisi dengan label. Begin label dan end label harus sama. Di dalam compound juga bisa berisi deklarai variabel, looping atau kontrol program lainnya. Setiap Function harus punya return value untuk mengembalikan nilai yang dihasilkan
Procedure dan Function
Procedure
Penulisan untuk membuat procedure dalam MySQL adalah sebagai berikut.
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
Function
CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
Keterangan
1. proc_parameter (hanya pada procedure):
[ IN | OUT | INOUT ] param_name type
• IN parameter dilewatkan ke dalam procedure tetapi modifikasi nilai dari parameter ini tidak kelihatan setelah procedure tersebut dipanggil.
• Out parameter merupakan parameter yang dilewatkan dari dalam procedure ke pemanggil procedure tersebut. Nilai inisialisasi saat memanggil adalah null dan hasil parameter akan kelihatan setelah procedure dipanggil.
• INOUT parameter diinisilaisai oleh pemanggil procedure, kemudian hasil modifikasinya tersebut akan kelihatan setelah procedure tersebut dipanggil.
2. characteristic
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
3. routine_body:
Valid SQL procedure statement
Routine body berisi syntax-syntax sql yang valid, seperti insert atau select. Bisa juga berisi compound. Compount diapit oleh begin… end. Syntax dari compound system adalah sebagai berikut.
[begin_label:] BEGIN
[statement_list]
END [end_label]
Compound ini bisa diisi dengan label. Begin label dan end label harus sama. Di dalam compound juga bisa berisi deklarai variabel, looping atau kontrol program lainnya. Setiap Function harus punya return value untuk mengembalikan nilai yang dihasilkan
Implementasi Contoh Procedure dan Function MySQL
Berikut adalah contoh penggunaan procedure. Pertama kita buat terlebih dahulu database dengan nama adakara. Kemudian silakan buat table berikut dengan isinya..
CREATE TABLE `siswa` (
`NIS` varchar(20) collate latin1_general_ci NOT NULL,
`Nama` varchar(30) collate latin1_general_ci NOT NULL,
`Angkatan` varchar(9) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`NIS`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
LOCK TABLES `siswa` WRITE;
/*!40000 ALTER TABLE `siswa` DISABLE KEYS */;
INSERT INTO `siswa` VALUES ('1024','resika arthana','2005/2006'),('1','cxfbsdjg','2005/2006'),('2','dshfk','2005/2006'),('3','dsfku','2005/2006'),('11','Ari damayanti','2005/2006'),('12','wedana','2005/2006'),('122','andika','2005/2006'),('123','mas ayu','2005/2006');
/*!40000 ALTER TABLE `siswa` ENABLE KEYS */;
UNLOCK TABLES;
Procedure
Berikut ini adalah proses pembuatan procedure, dibuat dalam command from.
mysql> delimiter //
mysql> CREATE PROCEDURE jumlahSiswa (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM siswa;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
Function
mysql> create function tmbhSaudara(nama char(20)) returns char(5)
-> return concat('Saudara ',nama);
Pemanggilan Procedure dan Function
Pemanggilan procedure menggunakan syntax
CALL procedure_atau_function_name([parameter[,...]])
procedure_atau_function_name adalah nama procedure ata fungsi yang dipanggil dan parameter adalah nama-nama parameter procedure atau fungsi tersebut
Procedure
mysql> call jumlahSiswa(@a);
Query OK, 0 rows affected (0.00 sec)
mysql> select @a;
+------+
| @a |
+------+
| 8 |
+------+
Function
mysql> select tmbhSaudara(' resika arthana');
+--------------------------------+
| tmbhSaudara(' resika arthana') |
+--------------------------------+
| Saudara resika arthana |
+--------------------------------+
Menghapus Procedure dan Function
Untuk menghapus procedure atau function digunakan perintah sebagai berikut
DROP {PROCEDURE | FUNCTION} [IF EXISTS] procedure_or_function_name
Sabtu, 10 Mei 2025
SQL : Procedure dan Function
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar