Rumah > Artikel > pangkalan data > set hasil mysql penyimpanan prosedur tersimpan
Prosedur tersimpan dalam MySQL membolehkan pengguna menyesuaikan set pernyataan SQL, merangkumnya ke dalam blok kod boleh guna semula dan terus memanggil dan melaksanakannya dalam aplikasi. Ciri ini boleh meningkatkan kebolehgunaan semula pernyataan SQL dan kebolehbacaan kod dengan banyak, dan juga boleh mempercepatkan pelaksanaan pertanyaan. Menggunakan set hasil dalam prosedur tersimpan boleh memberikan pengguna kaedah pemprosesan data yang lebih fleksibel.
1. Apakah set hasil
Set keputusan (ResultSet) ialah koleksi data yang dikembalikan oleh operasi pertanyaan Melalui koleksi ini, maklumat lajur yang ditentukan dalam jadual pangkalan data boleh diperolehi dan maklumat Melaksanakan operasi, pengiraan dan pemprosesan. Dalam MySQL, prosedur tersimpan boleh menggunakan set hasil, yang boleh mengembalikan hasil operasi pertanyaan kepada aplikasi yang memanggil prosedur tersimpan untuk pemprosesan dan penggunaan selanjutnya.
2. Prosedur tersimpan yang menggunakan set hasil
Untuk menggunakan set hasil dalam prosedur tersimpan, anda perlu menggunakan kata kunci khas - CURSOR. CURSOR ialah jenis kursor yang boleh mengekstrak setiap baris data dalam set hasil pertanyaan satu demi satu dan menyimpan baris data dalam jadual sementara untuk pemprosesan dan output mengikut prosedur tersimpan.
Sintaks CURSOR adalah seperti berikut:
ISYTIHKAN cursor_name CURSOR FOR SELECT statement;
Antaranya, cursor_name ialah nama kursor, dan SELECT statement ialah SQL kenyataan yang perlu ditanya.
Seterusnya, kami menggunakan contoh untuk menunjukkan cara menggunakan set keputusan dalam prosedur tersimpan.
Contoh: Cipta prosedur tersimpan untuk menanyakan maklumat pesanan pengguna yang ditentukan dan mengeluarkan keputusan yang ditetapkan kepada aplikasi. Memandangkan set hasil boleh diproses dan dikira dengan lebih fleksibel, hasil pertanyaan juga perlu memasukkan maklumat statistik seperti jumlah pesanan dan jumlah pesanan.
Dalam klien mysql, masukkan kod berikut:
DELIMITER // CREATE PROCEDURE order_info(IN p_customer_id INT) BEGIN DECLARE order_id INT; DECLARE order_total DECIMAL(10,2); DECLARE total_orders INT; DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT o.order_id, o.order_total FROM orders o WHERE o.customer_id = p_customer_id; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; SELECT COUNT(*) INTO total_orders FROM orders o WHERE o.customer_id = p_customer_id; IF total_orders > 0 THEN SELECT SUM(o.order_total) INTO order_total FROM orders o WHERE o.customer_id = p_customer_id; OPEN cur; SELECT 'Order ID', 'Order Total' UNION ALL SELECT '========', '==========='; loop_cursor: LOOP FETCH cur INTO order_id, order_total; IF done THEN LEAVE loop_cursor; END IF; SELECT order_id, order_total; END LOOP; SELECT 'Total Orders: ', total_orders; SELECT 'Total Amount: ', order_total; CLOSE cur; ELSE SELECT 'No orders found.'; END IF; END // DELIMITER ;
Anotasi adalah seperti berikut:
DELIMITER digunakan untuk menukar pembatas lalai dalam MySQL untuk mengelakkan konflik dengan pembatas dalam prosedur tersimpan konflik nombor.
PROSEDUR CIPTA digunakan untuk membuat prosedur tersimpan.
DECLARE digunakan untuk mengisytiharkan pembolehubah.
Pernyataan IF-ELSE digunakan untuk menentukan sama ada hasil pertanyaan kosong.
KURSOR dan FETCH digunakan untuk menanyakan set hasil.
Di atas ialah beberapa kod utama contoh ini. Mari kita lihat hasil pelaksanaan prosedur tersimpan.
Masukkan pernyataan berikut untuk memanggil prosedur tersimpan:
CALL order_info(1);
Hasil pelaksanaan adalah seperti berikut:
Daripada hasil pelaksanaan, prosedur yang disimpan boleh menjadi sangat Ia adalah cara yang baik untuk menanyakan maklumat pesanan pengguna yang ditentukan dan mengeluarkan keputusan yang ditetapkan kepada aplikasi. Pada masa yang sama, ia juga mengumpul statistik jumlah pesanan dan jumlah pesanan, merealisasikan kaedah pemprosesan data yang lebih fleksibel.
3. Ringkasan
Artikel ini memperkenalkan konsep set hasil, prosedur tersimpan dan kursor dalam MySQL, dan menunjukkan cara menggunakan set hasil dalam prosedur tersimpan melalui contoh khusus. Sebagai ciri penting MySQL, set hasil memberikan pengguna kaedah pemprosesan data yang lebih fleksibel, terutamanya apabila digunakan dalam prosedur tersimpan, yang boleh meningkatkan kebolehgunaan semula pernyataan SQL dan kebolehbacaan kod dengan banyak, dan mengoptimumkan kecekapan Pertanyaan.
Atas ialah kandungan terperinci set hasil mysql penyimpanan prosedur tersimpan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!