Sponsor

Best Patner

Senin, 11 April 2011

PROCEDURE DAN FANCTION MYSQL

Rutinitas Stored (Prosedur dan Fungsi) didukung pada versi MySQL 5.0. Stored Prosedur adalah satu set pernyataan, yang memungkinkan kemudahan dan fleksibilitas bagi programmer karena prosedur yang tersimpan mudah untuk menjalankan dari menerbitkan kembali sejumlah pernyataan SQL individu. Prosedur tersimpan bisa memanggil prosedur lain yang tersimpan juga. Prosedur tersimpan bisa sangat berguna di mana beberapa aplikasi klien ditulis dalam bahasa yang berbeda atau bisa bekerja pada platform yang berbeda tetapi mereka harus melakukan operasi database yang sama.

Prosedur Store dapat meningkatkan kinerja karena dengan menggunakan informasi prosedur yang tersimpan kurang perlu dikirim antara server dan klien. Hal ini meningkatkan beban pada server database karena bekerja kurang dilakukan pada sisi client dan pekerjaan banyak dilakukan pada sisi server.


Syntax membuat PROCEDURE :
Syntax umum membuat PROCEDURE adalah :
        CREATE PROCEDURE proc_name ([proc_parameter[......]]) routine_body

proc_name : nama procedure
proc_parameter : [ IN | OUT | INOUT ] nama type parameters
routine_body : Valid SQL procedure statement



Daftar parameter yang tersedia dengan dalam kurung. Parameter dapat dideklarasikan untuk menggunakan tipe data yang valid, kecuali bahwa atribut Collate tidak dapat digunakan. Secara default setiap parameter adalah parameter DI. Untuk menentukan jenis lain parameter yang digunakan atau kata kunci OUT IN sebelum nama parameter.

DI parameter digunakan untuk melewatkan nilai ke dalam prosedur. Prosedur dapat mengubah nilai tetapi ketika prosedur ini mengembalikan nilai maka modifikasi tidak terlihat ke pemanggil. OUT parameter digunakan untuk melewatkan nilai dari prosedur ke pemanggil tetapi terlihat kepada pemanggil. Parameter IN diawali dengan penelepon dan dapat dimodifikasi dengan prosedur, dan setiap perubahan dibuat oleh prosedur ini terlihat ke pemanggil.

Untuk setiap parameter OUT atau IN Anda harus mengoper variabel yang ditetapkan pengguna karena kemudian prosedur mengembalikan nilai maka hanya Anda yang dapat memperolehnya nilai. Tetapi jika Anda memanggil prosedur dari prosedur yang lain maka anda juga bisa mengoper parameter rutin atau variabel sebagai DI atau parameter IN.

Routine_body berisi pernyataan SQL prosedur yang valid yang dapat pernyataan sederhana seperti SELECT atau INSERT atau mereka dapat menjadi pernyataan senyawa ditulis menggunakan BEGIN dan END. Pernyataan majemuk dapat terdiri deklarasi, loop atau struktur kontrol lainnya.

Sekarang kita menjelaskan Anda contoh prosedur yang tersimpan sederhana yang menggunakan parameter OUT. Ia menggunakan perintah klien mysql untuk mengubah pembatas pemisah pernyataan dari, ke / / prosedur hingga sedang didefinisikan. Contoh:


mysql> delimiter //
mysql> CREATE PROCEDURE Sproc(OUT p1 INT)
    -> SELECT COUNT(*) INTO p1 FROM Emp;
    -> //
Query OK, 0 rows affected (0.21 sec)

mysql> delimiter ;
mysql> CALL Sproc(@a);
Query OK, 0 rows affected (0.12 sec)
mysql> select @a;
+------+
| @a   |
+------+
| 5    |
+------+
1 row in set (0.00 sec)
 
 
SYNTAX MEMBUAT FUNCTION
Sintaks umum Menciptakan Fungsi adalah:
         CREATE FUNCTION func_name ([func_parameter [,...]]) RETURNS routine_body jenis

func_name: Nama Fungsi
func_parameter: ketik param_name
ketik: Setiap datatype valid MySQL
routine_body: Hari SQL pernyataan prosedur

Klausa RETURN adalah wajib bagi FUNCTION. Ini digunakan untuk menunjukkan jenis fungsi kembali.

Sekarang kita menjelaskan Anda contoh sederhana fungsi. Fungsi ini mengambil parameter dan digunakan untuk melakukan suatu operasi dengan menggunakan fungsi SQL dan mengembalikan hasilnya. Dalam contoh ini tidak ada perlu menggunakan pembatas karena tidak mengandung internal; pembatas pernyataan. Contoh:


mysql> CREATE FUNCTION func(str CHAR(20))
    -> RETURNS CHAR(50)
    -> RETURN CONCAT('WELCOME TO, ',str,'!');
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT func('RoseIndia');
+------------------------+
| func('RoseIndia')      |
+------------------------+
| WELCOME TO, RoseIndia! |
+------------------------+
1 row in set (0.00 sec)
 
 

0 komentar:

Posting Komentar