Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat dan menjalankan fungsi dan prosedur tersimpan MySQL

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() \G
Jika 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memigrasikan MySQL ke PostgreSQL di AWS RDS, Bagian 2

  2. Bagaimana cara menyimpan datetime di MySQL dengan info zona waktu

  3. Setel Ulang Kata Sandi Root Server MySQL

  4. MySQL vs MongoDB

  5. Apakah SQL Server Menawarkan Apa Pun Seperti MySQL's ON DUPLICATE KEY UPDATE?