Rumah >pangkalan data >tutorial mysql >fungsi prosedur tersimpan mysql
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
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.
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.
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.
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.
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
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).
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.
Panggil fungsi menggunakan pernyataan SELECT dan tanyakan hasilnya:
SELECT double_num(5);
Hasil output ialah 10.
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.
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:
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!