Rumah  >  Artikel  >  pangkalan data  >  fungsi prosedur tersimpan mysql

fungsi prosedur tersimpan mysql

PHPz
PHPzasal
2023-05-18 09:50:37620semak imbas

MySQL ialah sistem pengurusan pangkalan data biasa yang mempunyai fungsi prosedur dan fungsi tersimpan. Artikel ini akan memperkenalkan konsep, penggunaan dan contoh prosedur dan fungsi tersimpan dalam MySQL.

1. Prosedur tersimpan

  1. Konsep

Prosedur tersimpan ialah satu set penyata SQL tersusun yang boleh disimpan dalam pangkalan data dan dilaksanakan berulang kali. Ia sering digunakan untuk melaksanakan operasi pangkalan data yang kompleks seperti memasukkan, mengemas kini, memadam data, dll. Prosedur tersimpan boleh menerima parameter dan boleh mengembalikan satu atau lebih set hasil.

  1. Buat prosedur tersimpan

Gunakan pernyataan CREATE PROCEDURE untuk mencipta prosedur tersimpan Sintaks adalah seperti berikut:

CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name datatype [(size)]) [NOT DETERMINISTIC] [SQL SECURITY {DEFINER | INVOKER}] [COMMENT ‘string’]
BEGIN
-- 存储过程内部语句
END;

Antaranya, yang. parameter adalah pilihan: IN bermaksud parameter input , OUT mewakili parameter output, dan INOUT mewakili kedua-dua parameter input dan parameter output. datatype mewakili jenis data, saiz mewakili panjang, NOT DETERMINISTIC mewakili determinisme, SQL SECURITY mewakili tahap kawalan akses, COMMENT mewakili ulasan antara BEGIN dan END ialah set pernyataan SQL di dalam prosedur tersimpan.

Contohnya:

CREATE PROCEDURE select_all_users ()
BEGIN
SELECT * FROM users;
END;

Prosedur tersimpan dinamakan select_all_users, tidak mempunyai parameter dan secara dalaman melaksanakan SELECT * FROM pernyataan pengguna, iaitu, menanyakan semua data dalam jadual pengguna.

  1. Panggil prosedur tersimpan

Panggil prosedur tersimpan menggunakan pernyataan CALL, sintaksnya adalah seperti berikut:

CALL procedure_name(param1, param2, ...);

Contohnya:

CALL select_all_users();

Pernyataan ini Prosedur tersimpan select_all_users yang dibuat sebelum ini akan dilaksanakan.

  1. Padam prosedur tersimpan

Gunakan pernyataan DROP PROCEDURE untuk memadam prosedur tersimpan Sintaks adalah seperti berikut:

DROP PROCEDURE IF EXISTS procedure_name;

Contohnya:

DROP PROCEDURE IF EXISTS select_all_users;

Pernyataan ini akan memadamkan prosedur tersimpan bernama select_all_users.

  1. Contoh prosedur tersimpan

Berikut ialah contoh mudah prosedur tersimpan, yang menerima parameter input, mendarabkan parameter dengan 2 dan output:

CREATE PROCEDURE double_num (IN num INT, OUT result INT)
BEGIN
SET result = num * 2;
END;

Panggil prosedur tersimpan:

CALL double_num(5, @result);
SELECT @result;

Hasil output ialah 10.

2. Fungsi

  1. Konsep

Fungsi ialah prosedur tersimpan khas yang mengembalikan nilai dan boleh menerima sifar atau lebih parameter Masukkan. Tidak seperti prosedur tersimpan, fungsi tidak boleh melaksanakan pernyataan definisi data (CREATE, ALTER, DROP) atau pernyataan kawalan transaksi (COMMIT, ROLLBACK).

  1. Buat fungsi

Gunakan pernyataan CREATE FUNCTION untuk mencipta fungsi Sintaks adalah seperti berikut:

CREATE FUNCTION function_name ([parameter_name datatype [(size)]] [, ...]) RETURNS return_datatype
BEGIN
-- 函数内部语句
END;

Antaranya, parameter_name dan datatype mewakili. nama dan jenis parameter input, saiz mewakili panjang return_datatype mewakili jenis data nilai pulangan antara BEGIN dan END ialah set pernyataan SQL dalam prosedur yang disimpan.

Contohnya:

CREATE FUNCTION double_num (num INT) RETURNS INT
BEGIN
RETURN num * 2;
END;

Fungsi dipanggil double_num, parameter input ialah num, jenis pulangan ialah INT, dan nilai num didarab dengan 2 dan dikembalikan.

  1. Panggil fungsi

Panggil fungsi menggunakan pernyataan SELECT dan tanyakan hasilnya:

SELECT double_num(5);

Hasil output ialah 10.

  1. Fungsi Padam

Gunakan pernyataan DROP FUNCTION untuk memadamkan fungsi tersebut adalah seperti berikut:

DROP FUNCTION IF EXISTS function_name;

Contohnya:

rreee.

Pernyataan ini akan Fungsi bernama double_num akan dialih keluar.

  1. Contoh fungsi

Berikut ialah contoh fungsi mudah yang mencari pemfaktoran nombor:

DROP FUNCTION IF EXISTS double_num;

Panggil fungsi:

CREATE FUNCTION factorial (n INT) RETURNS INT
BEGIN
IF n <= 0 THEN
RETURN 1;
ELSE
RETURN n * factorial(n - 1);
END IF;
END;

Hasil keluaran ialah 120.

3. Perbezaan antara prosedur dan fungsi tersimpan

Perbezaan utama antara prosedur dan fungsi tersimpan ialah:

  1. Jenis pemulangan yang berbeza: prosedur tersimpan tidak perlu mengembalikan nilai, tetapi Fungsi perlu mengembalikan nilai.
  2. Kaedah pemprosesan adalah berbeza: prosedur tersimpan biasanya digunakan untuk melaksanakan beberapa operasi, seperti memasukkan, mengemas kini, memadam, dsb. sering digunakan untuk pengiraan matematik dan pemprosesan rentetan.
  3. Kaedah lulus parameter adalah berbeza: prosedur tersimpan boleh menggunakan kaedah lulus parameter IN, OUT dan INOUT hanya membenarkan kaedah lulus parameter IN.
  4. Kaedah panggilan adalah berbeza: prosedur tersimpan dipanggil menggunakan penyataan CALL boleh dipanggil dalam klausa SELECT, WHERE dan HAVING.

4. Ringkasan

Artikel ini memperkenalkan konsep, penggunaan dan contoh prosedur dan fungsi tersimpan dalam MySQL. Prosedur dan fungsi yang disimpan adalah alat penting untuk pengurusan pangkalan data, dan ia boleh meningkatkan kecekapan dan keselamatan pangkalan data. Dalam pembangunan sebenar, prosedur atau fungsi yang disimpan harus dipilih mengikut keperluan tertentu.

Atas ialah kandungan terperinci fungsi prosedur tersimpan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah versi mysqlArtikel seterusnya:Apakah versi mysql