Rumah > Artikel > pangkalan data > mysql menggunakan prosedur tersimpan
MySQL ialah sistem pengurusan pangkalan data hubungan yang popular Kekuatannya terletak pada sokongannya untuk penggunaan prosedur tersimpan. Prosedur tersimpan ialah set penyataan SQL boleh laku yang menerima parameter dan disimpan pada pelayan MySQL. Prosedur tersimpan boleh dipanggil oleh aplikasi atau prosedur tersimpan lain untuk melaksanakan tugas berulang dengan lebih cekap. Dalam artikel ini, kita akan mendalami penggunaan prosedur tersimpan MySQL.
1 Buat prosedur tersimpan
Dalam MySQL, anda boleh mencipta prosedur tersimpan melalui kenyataan CREATE PROCEDURE. Sintaks adalah seperti berikut:
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- SQL statements END;
Senarai parameter ialah item pilihan yang menentukan sifar atau lebih parameter input (IN) atau output (OUT). Parameter input digunakan untuk menghantar data kepada prosedur yang disimpan, dan parameter output digunakan untuk mengembalikan data daripada prosedur yang disimpan.
Kemudian, kita perlu meletakkan pernyataan SQL ke dalam prosedur tersimpan, contohnya:
CREATE PROCEDURE get_customer_info (IN customer_id INT) BEGIN SELECT * FROM customers WHERE customer_id = customer_id; END;
Dalam proses ini, kami telah mencipta prosedur tersimpan dipanggil get_customer_info yang menggunakan parameter input customer_id sebagai Penapis yang mengembalikan maklumat pelanggan dengan ID yang ditentukan daripada jadual pelanggan.
2. Panggil prosedur tersimpan
Setelah prosedur tersimpan dibuat, ia boleh dipanggil melalui kenyataan PANGGILAN. Contohnya:
CALL get_customer_info(1);
Pernyataan ini akan memanggil prosedur tersimpan get_customer_info dan lulus nilai 1 sebagai parameter customer_id. Ia akan mengembalikan maklumat pelanggan dengan ID 1 dalam jadual pelanggan.
3. Pembolehubah prosedur tersimpan
Seperti pernyataan SQL, prosedur tersimpan boleh menggunakan pembolehubah untuk menyimpan nilai. Dalam prosedur tersimpan, pembolehubah boleh diisytiharkan melalui pernyataan DECLARE. Contohnya:
CREATE PROCEDURE get_customer_info (IN customer_id INT) BEGIN DECLARE customer_name VARCHAR(255); SELECT name INTO customer_name FROM customers WHERE customer_id = customer_id; END;
Dalam prosedur ini, kami mengisytiharkan pembolehubah yang dipanggil nama_pelanggan dan menggunakannya untuk menyimpan nilai dalam lajur "nama" dalam pernyataan SELECT. Akhir sekali, kita boleh menetapkan nilai kepada pembolehubah melalui klausa INTO dalam pernyataan SELECT.
4. Logik dan gelung bersyarat
Seperti bahasa pengaturcaraan lain, prosedur tersimpan boleh mengandungi logik dan gelung bersyarat. Contohnya:
CREATE PROCEDURE insert_customer (IN customer_name VARCHAR(255), IN customer_email VARCHAR(255)) BEGIN DECLARE customer_id INT; SELECT MAX(customer_id) + 1 INTO customer_id FROM customers; IF customer_id IS NULL THEN SET customer_id = 1; END IF; INSERT INTO customers (customer_id, name, email) VALUES (customer_id, customer_name, customer_email); END;
Dalam proses ini, kami menggunakan fungsi MAX untuk menentukan ID pelanggan maksimum semasa dan kemudian menambah 1 padanya. Jika tiada pelanggan pada masa ini, ID ditetapkan kepada 1. Kami kemudiannya boleh menggunakan pernyataan INSERT untuk memasukkan rekod baharu ke dalam jadual pelanggan.
Prosedur tersimpan juga boleh mengandungi struktur lain seperti gelung WHILE, pernyataan IF-ELSE, pernyataan GOTO, dsb.
5. Ukur kecekapan
Salah satu kelebihan utama menggunakan prosedur tersimpan ialah ia boleh meningkatkan kecekapan pertanyaan. Oleh kerana prosedur tersimpan disusun dan dicache pada pelayan MySQL, ia lebih pantas daripada penyataan SQL biasa. Menggunakan prosedur tersimpan boleh mempercepatkan pertanyaan dengan mengurangkan trafik rangkaian dan kependaman antara pelayan SQL dan aplikasi.
6. Ringkasan
Prosedur tersimpan adalah salah satu alatan berkuasa yang disediakan oleh MySQL, membolehkan kami menjalankan blok kod SQL yang boleh digunakan semula pada pelayan MySQL. Prosedur tersimpan boleh mengandungi logik bersyarat dan gelung untuk mengendalikan logik aplikasi yang kompleks. Dengan menggunakan prosedur tersimpan, anda boleh meningkatkan kecekapan pertanyaan dan mengurangkan overhed komunikasi antara pelayan MySQL dan aplikasi. Prosedur tersimpan adalah salah satu fungsi teras MySQL, dan menguasai prosedur tersimpan adalah penting untuk membangunkan aplikasi MySQL yang cekap.
Atas ialah kandungan terperinci mysql menggunakan prosedur tersimpan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!