1. Pengetahuan asas tentang fungsi prosedur MySQL
Prosedur MySQL
Prosedur MySQL terdiri daripada berbilang pernyataan SQL Dikarang, menerima parameter dan melaksanakan operasi khusus pada parameter input. Prosedur MySQL ialah kaedah merangkum berbilang pernyataan SQL untuk mencapai fungsi tertentu.
Proses MySQL mempunyai ciri-ciri berikut:
(1) Proses MySQL dilaksanakan pada bahagian pelayan.
(2) Prosedur MySQL boleh menerima parameter input dan mengembalikan parameter output.
(3) Prosedur MySQL boleh membuat dan mengemas kini jadual, memasukkan dan mengemas kini data dalam pangkalan data.
(4) Prosedur MySQL boleh mengandungi penyataan aliran kawalan, gelung, cawangan dan pengendali pengecualian.
(5) Proses MySQL menyokong fungsi dan sub-proses yang ditentukan pengguna.
Fungsi MySQL
Fungsi MySQL ialah satu set pernyataan pertanyaan tunggal yang ditakrifkan dalam MySQL. Mereka menerima satu atau lebih parameter input dan mengembalikan satu atau lebih nilai. Fungsi boleh digunakan untuk mengira, membandingkan, mengubah dan memanipulasi data.
Fungsi MySQL mempunyai ciri-ciri berikut:
(1) Fungsi MySQL dilaksanakan pada bahagian pelayan.
(2) Fungsi MySQL boleh menerima parameter input dan mengembalikan parameter output.
(3) Fungsi MySQL hanya boleh mengembalikan satu nilai dan tidak boleh melakukan operasi seperti memasukkan, mengemas kini dan memadam.
(4) Fungsi MySQL tidak boleh mengandungi penyataan aliran kawalan, gelung, cawangan dan pengendali pengecualian.
(5) Fungsi MySQL menyokong fungsi dan sub-fungsi yang ditentukan pengguna.
2. Cara menggunakan fungsi proses MySQL
Dalam MySQL, pengguna boleh menggunakan kenyataan CREATE PROCEDURE dan CREATE FUNCTION untuk mencipta prosedur dan fungsi.
Buat prosedur MySQL
Berikut ialah sintaks untuk mencipta prosedur MySQL:
CREATE PROCEDURE procedure_name ([parameters ])
BERMULA
[SQL statements]
END;
Di mana, procedure_name ialah nama prosedur, parameter ialah senarai parameter prosedur, dan pernyataan SQL ialah pernyataan MySQL yang akan dilaksanakan dalam prosedur.
Sebagai contoh, kami mencipta prosedur MySQL mudah yang menerima dua parameter input dan mengembalikan jumlahnya:
BUAT PROSEDUR tambah(DALAM INT, DALAM b INT)
BERMULA
SELECT a+b;
TAMAT;
Buat fungsi MySQL
Berikut ialah sintaks untuk mencipta fungsi MySQL:
BUAT FUNGSI nama_fungsi([parameter]) MENGEMBALIKAN jenis_data
BERMULA
[SQL statements]
END;
Di mana, nama_fungsi ialah nama fungsi, parameter ialah senarai parameter fungsi dan jenis_data ialah fungsi yang mengembalikan Jenis data, pernyataan SQL ialah pernyataan MySQL yang akan dilaksanakan dalam fungsi tersebut.
Sebagai contoh, kami mencipta fungsi MySQL ringkas yang mengambil parameter input dan mengembalikan segi empat sama:
BUAT FUNGSI segi empat sama(x INT) RETURNS INT
MULA
RETURN x*x;
END;
3. Contoh fungsi prosedur MySQL
Contoh prosedur MySQL
Berikut ialah contoh mudah prosedur MySQL yang mengeluarkan setiap nama jadual dan kiraan baris dalam pangkalan data semasa ke konsol:
CREATE PROCEDURE table_count()
BEGIN
DECLARE done INT DEFAULT FALSE; DECLARE t_name CHAR(32); DECLARE t_count INT; DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE(); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; repeat FETCH cur INTO t_name; IF NOT done THEN SET @sql = CONCAT('SELECT COUNT(*) INTO "', t_name, '_count" FROM ', t_name); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @out = CONCAT(t_name, ': ', t_name, '_count'); SELECT @out; END IF; until done END REPEAT; CLOSE cur;
END;
Dalam proses di atas, kami menggunakan kursor untuk melintasi semua jadual dalam pangkalan data dan menggunakan SQL dinamik untuk mendapatkan bilangan baris dalam setiap jadual dan mengeluarkannya pada konsol.
Contoh fungsi MySQL
Berikut ialah contoh fungsi MySQL mudah yang menerima rentetan dan mengembalikan perkataan pertama setiap perkataan di dalamnya Huruf :
CIPTA FUNGSI get_initials(str VARCHAR(255)) MENGEMBALIKAN VARCHAR(255)
BERMULA
DECLARE len INT DEFAULT 0; DECLARE i INT DEFAULT 0; DECLARE initial CHAR(1); DECLARE initials VARCHAR(255) DEFAULT ''; SET len = LENGTH(str); WHILE i<=len DO SET initial = SUBSTRING(str, i, 1); IF i = 1 OR SUBSTRING(str, i-1, 1) = ' ' THEN SET initials = CONCAT(initials, initial); END IF; SET i = i + 1; END WHILE; RETURN initials;
TAMAT;
Dalam fungsi di atas, kami ulang Masukkan a rentetan dan pisahkan setiap perkataan berdasarkan ruang dan dapatkan huruf pertamanya dan gabungkannya sebagai nilai pulangan fungsi.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi prosedur mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!