Minggu, 06 Mei 2012

FUNGSI DI MYSQL


FUNCTION adalah salah satu feature yang terdapat di mysql 5.0 sedang-kan Function adalah
kumpulan-kumpulan SQL berupa rountine yang di simpan dalam database MySQL Server. biasanya function ini dikombinasikan dengan
store pocedure atau bisa juga tidak di kombinasikan dengan store procedure

oke berikut ini cara membuat function

dalam contoh dibawah ini kasus tentang sistem informasi sekolah, yang mana function yang dibuat akan mengembalikan nilai berupa jumlah siswa dari setiap kelas.



sturuktur tabel siswa

CREATE TABLE `data_siswa`.`tbl_siswa` (
`nis` char(10) NOT NULL,
`nama` varchar(255) NOT NULL,
`kelas` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1


function untuk mengembalikan jumlah data dari setiap kelas

DELIMITER $$
CREATE FUNCTION sf_tampil_siswa_kelas (p_kelas int) RETURNS INT DETERMINISTIC

BEGIN
DECLARE jml INT;
SELECT COUNT(*) AS jml_kelas INTO jml FROM tb_siswa WHERE kelas = p_kelas;
RETURN jml;
END$$

DELIMITER ;

penjelasannya sebagai berikut:
  • DELIMITER = adalah untuk memberi tahu kepada myql soal delimiter yang digunakan, secara default menggunakan ; jadi bila ada tanda ; mysql akan mengartikan akhir dari statement, pada contoh di atas delimeter yang digunakan $$ jadi akhir statementnya adalah $$
  • CREATE FUNCTION = adalah header untuk membuat function
  • RETURNS = adalah untuk menentukan tipe data yang di return-kan oleh function
  • DETERMINISTIC/ NOT DETERMINISTIC = adalah untuk menentukan yang bisa menggunakan function ini adalah user pembuatnya saja (determinisric) atau user siapa saja (not determinisric).
  • BEGIN END = adalah body dari function jadi semua SQL nya di tulis disini.

contoh pemanggilannya seperiti dibawah ini:

select sf_tampil_siswa_kelas("2");

sebuah function hanya bisa memberikan return berupa nilai saja dan tidak bisa berupa resutlset

untuk penulisan DETEMINISTIC bisa ditulis secara implisit dengan memberikan setting global pada mysql dan secara default benilai NOT DETEMINISTIC , caranya dibawah ini:

SET GLOBAL log_bin_trust_function_creators = 1;

http://dendieisme.blogspot.com/2009/03/membuat-function-di-mysql.html

Tidak ada komentar:

Posting Komentar