MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang menyokong berbilang bahasa pengaturcaraan. Apabila membangunkan aplikasi, kita sering perlu melaksanakan beberapa pernyataan pertanyaan SQL yang kompleks Pada masa ini, kita boleh menggunakan prosedur tersimpan MySQL untuk menyelesaikan kerja.
Prosedur tersimpan ialah koleksi pernyataan SQL yang menerima parameter dan mengembalikan set hasil. Berbanding dengan melaksanakan pernyataan SQL sahaja, menggunakan prosedur tersimpan mempunyai kelebihan berikut:
Mari kita lihat beberapa contoh biasa prosedur tersimpan MySQL.
(1) Buat prosedur tersimpan mudah
BUAT PROSEDUR get_person
(DALAM id INT)
MULA
SELECT * FROM person WHERE id = id;
TAMAT;
The kod di atas mencipta prosedur tersimpan bernama get_person
, dengan parameter input id
dan mengembalikan semua maklumat untuk id yang ditentukan dalam jadual person
. Jenis parameter boleh menjadi IN
, OUT
atau INOUT
, masing-masing mewakili jenis input, output dan input/output.
Pernyataan untuk melaksanakan prosedur tersimpan ialah:
CALL get_person(1);
Pernyataan ini akan mengembalikan rekod dengan person
1 dalam jadual id
.
(2) Cipta prosedur tersimpan dengan parameter output
CIPTA PROSEDUR get_status
(IN id INT, OUT status VARCHAR(50))
MULAKAN
SELECT status FROM order WHERE id = id INTO status;
TAMAT;
Prosedur tersimpan ini menerima parameter input id
dan mengembalikan nilai medan order
sepadan dengan id
dalam jadual status
ke dalam pembolehubah status
.
Pernyataan untuk melaksanakan prosedur tersimpan ialah:
CALL get_status(1, @status);
SELECT @status;
Pernyataan ini akan mengeluarkan order
jadual Nilai medan id
rekod yang status
ialah 1.
(3) Buat prosedur tersimpan dengan kursor
CIPTA PROSEDUR get_persons_by_age
(DALAM umur INT)
MULAKAN
DECLARE done BOOLEAN DEFAULT FALSE; DECLARE pid INT; DECLARE pname VARCHAR(50); DECLARE persons CURSOR FOR SELECT id, name FROM person WHERE age = age; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN persons; repeat_row: LOOP FETCH persons INTO pid, pname; IF done THEN LEAVE repeat_row; END IF; SELECT pid, pname; END LOOP; CLOSE persons;
TAMAT;
Prosedur tersimpan ini menerima parameter input age
dan mengembalikan semua rekod dalam jadual person
dengan age
bersamaan dengan age
.
Prosedur tersimpan ini menggunakan kursor untuk beralih melalui set hasil dan mengeluarkan nilai medan id
dan name
untuk setiap rekod.
Pernyataan untuk melaksanakan prosedur tersimpan ialah:
CALL get_persons_by_age(20);
Pernyataan ini akan mengembalikan semua rekod dalam jadual person
dengan age
berada 20, Dan keluarkan nilai id
dan name
mereka.
Ringkasnya, menggunakan prosedur tersimpan MySQL boleh menyelesaikan beberapa operasi pangkalan data yang kompleks dengan mudah dan meningkatkan kecekapan dan keselamatan aplikasi. Pembangun boleh mereka bentuk prosedur tersimpan yang sesuai berdasarkan keperluan sebenar untuk mencapai prestasi optimum dan kebolehselenggaraan.
Atas ialah kandungan terperinci prosedur tersimpan pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!