MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan. Ia popular di kalangan pembangun kerana fleksibiliti, kecekapan dan keselamatannya. Prosedur tersimpannya boleh dikatakan sebagai ciri penting MySQL Artikel ini akan memberi tumpuan kepada definisi prosedur tersimpan MySQL.
1. Definisi prosedur tersimpan
Prosedur tersimpan ialah blok kod SQL yang disusun, yang boleh terdiri daripada pernyataan SQL dan struktur kawalan. Tidak seperti pernyataan SQL, prosedur tersimpan disimpan dalam pangkalan data dan boleh ditentukan dengan parameter dan jenis parameter.
Prosedur tersimpan boleh melaksanakan satu siri pernyataan SQL ini mungkin memerlukan operasi yang mengambil masa yang lama untuk dilaksanakan atau perlu dipanggil beberapa kali. Menggunakan prosedur tersimpan boleh mengurangkan komunikasi antara klien dan pelayan pangkalan data dan mempercepatkan capaian data.
2. Penciptaan prosedur tersimpan
Untuk mencipta prosedur tersimpan dalam MySQL, anda boleh menggunakan penyataan CREATE PROCEDURE Format sintaks adalah seperti berikut:
rreeeAntaranya , procedure_name ialah nama prosedur yang disimpan parameter_name ialah nama parameter prosedur yang disimpan, dan data_type ialah jenis data parameter.
Jika prosedur yang disimpan memerlukan parameter, satu atau lebih nama dan jenis parameter mesti disediakan. Parameter boleh ditakrifkan sebagai jenis IN, OUT atau INOUT. Jenis IN merujuk kepada parameter masuk, jenis OUT merujuk kepada parameter keluar, dan jenis INOUT merujuk kepada kedua-dua parameter input dan parameter output.
Berikut ialah contoh prosedur tersimpan mudah:
CREATE PROCEDURE procedure_name([IN | OUT | INOUT] parameter_name data_type) BEGIN -- 执行语句 END;
Dalam kod ini, kami mentakrifkan prosedur tersimpan dipanggil add_student, yang menerima dua parameter IN, satu ialah nama pelajar ( student_name), satu ialah umur pelajar (umur), dan parameter OUT (hasil) juga disediakan untuk maklum balas keputusan pelaksanaan.
3. Penggunaan prosedur tersimpan
Selepas mencipta prosedur tersimpan, kita boleh menggunakan pernyataan CALL untuk memanggilnya. Format sintaks adalah seperti berikut:
CREATE PROCEDURE add_student(IN student_name VARCHAR(100), IN age INT, OUT result VARCHAR(100)) BEGIN INSERT INTO student(student_name,age) VALUES(student_name,age); SET result = '添加成功'; END;
dengan procedure_name ialah nama prosedur yang disimpan dan argumen ialah parameter yang mesti dihantar kepada prosedur yang disimpan.
Dalam contoh yang dibuat di atas, kami boleh memanggil prosedur tersimpan seperti ini:
CALL procedure_name(arguments);
Apabila memanggil prosedur tersimpan, kami menghantar nama pelajar dan parameter umur, dan juga menyerahkan hasilnya kepada A pembolehubah @hasil. Selepas prosedur tersimpan dilaksanakan, kita boleh melihat keputusan melalui pernyataan SELECT:
CALL add_student('张三',18,@result);
4. Kelebihan prosedur tersimpan
Berbanding dengan pernyataan SQL mudah, prosedur tersimpan mempunyai kelebihan berikut:
Prosedur tersimpan boleh menggabungkan berbilang pernyataan SQL bersama-sama, yang boleh memudahkan kerumitan operasi pangkalan data. Lebih banyak fungsi pemprosesan data boleh dialihkan ke dalam prosedur tersimpan dan bukannya pada klien, yang boleh mengurangkan beban pada klien dan penggunaan lebar jalur rangkaian.
Prosedur tersimpan boleh dianggap sebagai penghalang keselamatan, yang boleh menyekat dan mengawal operasi pangkalan data untuk memastikan keselamatan data.
Memandangkan kod prosedur tersimpan berjalan pada pelayan pangkalan data, bukan klien, adalah sukar untuk nyahpepijat satu langkah dan mendiagnosis ralat.
Sintaks dan kaedah panggilan prosedur tersimpan mungkin berbeza dalam pangkalan data yang berbeza, jadi tidak semua sistem pengurusan pangkalan data menyokong prosedur tersimpan.
Jika prosedur yang disimpan menjadi terlalu kompleks, atau prosedur yang disimpan dipanggil secara berlebihan, ia boleh menyebabkan prestasi pelayan menurun.
Atas ialah kandungan terperinci mysql mentakrifkan prosedur tersimpan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!