Artikel ini menjelaskan cara membuat dan menjalankan fungsi dan prosedur tersimpan MySQL di akun A2 Hosting Anda. Anda dapat menggunakan fungsi dan prosedur tersimpan untuk berbagai skenario. Misalnya, fungsi dan prosedur tersimpan yang dirancang dengan baik dapat meningkatkan keamanan database, meningkatkan integritas data, dan meningkatkan kinerja.
Fungsi yang disimpan
Fungsi tersimpan MySQL menyediakan cara yang kuat dan fleksibel untuk memanipulasi dan memproses data. Anda dapat menentukan dan menjalankan fungsi tersimpan di server A2 Hosting mana pun yang menggunakan MySQL.
Menyiapkan database pengujian
Untuk mendemonstrasikan contoh dasar dari fungsi yang disimpan, mari kita mulai dengan membuat database yang dapat kita gunakan untuk tujuan pengujian. Dalam pernyataan SQL berikut, ganti nama pengguna dengan nama pengguna akun Anda:
CREATE DATABASE username_test;Anda dapat menjalankan perintah SQL sebelumnya (dan perintah SQL berikut) dari baris perintah menggunakan alat MySQL, atau di browser web Anda menggunakan phpMyAdmin.
Jika Anda menggunakan phpMyAdmin, klik nama nama pengguna _test untuk memilih database. Jika tidak, jika Anda menggunakan program baris perintah mysql, ketikkan pernyataan SQL berikut:
USE username_test;
Selanjutnya, buat tabel di nama pengguna _test basis data bernama produk . Untuk melakukannya, jalankan pernyataan SQL berikut:
CREATE TABLE products (prod_id INT NOT NULL AUTO_INCREMENT, prod_name VARCHAR(20) NOT NULL, prod_cost FLOAT NOT NULL DEFAULT 0.0, prod_price FLOAT NOT NULL DEFAULT 0.0, PRIMARY KEY(prod_id));
Pernyataan SQL berikut menambahkan beberapa contoh data ke produk tabel:
INSERT INTO products (prod_name, prod_cost, prod_price) VALUES ('Basic Widget',5.95,8.35),('Micro Widget',0.95,1.35),('Mega Widget',99.95,140.00);
Membuat fungsi yang disimpan
Sekarang kita memiliki database dan tabel untuk digunakan, kita siap untuk membuat fungsi yang disimpan. Mari kita buat sebuah fungsi bernama calcProfit . Fungsi ini mengambil dua parameter input:biaya dan harga sesuatu. Ini menghitung keuntungan dengan mengurangkan biaya dari harga, dan kemudian mengembalikan nilai ke ekspresi panggilan.
Untuk membuat fungsi tersimpan ini, jalankan pernyataan MySQL berikut:
DELIMITER $$ CREATE FUNCTION calcProfit(cost FLOAT, price FLOAT) RETURNS DECIMAL(9,2) BEGIN DECLARE profit DECIMAL(9,2); SET profit = price-cost; RETURN profit; END$$ DELIMITER ;DELIMITER perintah di awal pernyataan ini mencegah MySQL memproses definisi fungsi terlalu cepat. DELIMITER perintah di akhir pernyataan ini mengembalikan pemrosesan ke normal.
Menggunakan fungsi yang disimpan
Anda sekarang dapat menjalankan fungsi yang disimpan dalam kueri database. Pernyataan SQL berikut menunjukkan cara melakukannya:
SELECT *, calcProfit(prod_cost,prod_price) AS profit FROM products;
Pernyataan SQL ini mengembalikan hasil berikut:
+---------+--------------+-----------+------------+--------+ | prod_id | prod_name | prod_cost | prod_price | profit | +---------+--------------+-----------+------------+--------+ | 1 | Basic Widget | 5.95 | 8.35 | 2.40 | | 2 | Micro Widget | 0.95 | 1.35 | 0.40 | | 3 | Mega Widget | 99.95 | 140 | 40.05 | +---------+--------------+-----------+------------+--------+
Seperti yang Anda lihat, calcProfit fungsi secara otomatis menghitung keuntungan (harga dikurangi biaya) untuk setiap produk dalam tabel.
Prosedur tersimpan
Prosedur tersimpan terkadang dikacaukan dengan fungsi tersimpan, tetapi berbeda dalam beberapa hal penting. Prosedur tersimpan, misalnya, harus dipanggil dengan CALL pernyataan, sedangkan fungsi yang disimpan dapat digunakan secara langsung dalam ekspresi SQL. Anda dapat menentukan dan menjalankan prosedur tersimpan di server A2 Hosting mana pun yang menggunakan MySQL.
Pernyataan MySQL berikut menunjukkan cara membuat prosedur tersimpan yang sangat mendasar bernama procedureTest . Prosedur ini melakukan pencarian sederhana pada produk tabel yang kami gunakan dalam contoh fungsi yang disimpan di atas. Meskipun prosedur ini tidak memiliki banyak kegunaan praktis, ini menunjukkan sintaks dan struktur yang benar untuk mendeklarasikan prosedur tersimpan:
DELIMITER $$ CREATE PROCEDURE procedureTest() BEGIN SELECT prod_name FROM products; END$$ DELIMITER ;
Untuk menjalankan prosedur tersimpan, gunakan pernyataan MySQL berikut:
CALL procedureTest() \GJika Anda menggunakan phpMyAdmin, ketikkan pernyataan MySQL sebelumnya tanpa \G pilihan di akhir.
Informasi Lebih Lanjut
Untuk informasi lebih lanjut tentang prosedur dan fungsi tersimpan di MySQL, silakan kunjungi http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html.