Rumah  >  Artikel  >  pangkalan data  >  prosedur tersimpan mysql sql

prosedur tersimpan mysql sql

WBOY
WBOYasal
2023-05-14 10:59:39474semak imbas

MySQL SQL Stored Procedure

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, di mana prosedur tersimpan merupakan salah satu ciri pentingnya. Prosedur tersimpan ialah satu set pernyataan SQL yang terkandung dalam pangkalan data dan boleh dipanggil dan dilaksanakan beberapa kali. Oleh kerana prosedur tersimpan disusun dan dioptimumkan pada masa penyusunan, anda boleh meningkatkan prestasi dan kecekapan pangkalan data.

Dalam MySQL, sintaks prosedur tersimpan adalah serupa dengan fungsi dan prosedur dalam bahasa pengaturcaraan lain. Berikut ialah contoh prosedur tersimpan mudah:

DELIMITER //

CREATE PROCEDURE select_products ()
BEGIN
    SELECT * FROM products;
END //

DELIMITER ;

Dalam prosedur tersimpan ini, kami mentakrifkan prosedur tersimpan bernama "select_products" untuk menanyakan semua data dalam jadual "products". DELIMITER digunakan untuk menetapkan pembatas baharu kerana koma bertitik (;) digunakan dalam prosedur tersimpan. Apabila mentakrifkan prosedur tersimpan, kami menggunakan kata kunci BEGIN dan END untuk mentakrifkan blok kod, dan pernyataan SQL sebenar berada dalam kurungan kerinting.

Prosedur tersimpan boleh menggunakan parameter input dan parameter output untuk pemprosesan yang lebih fleksibel. Berikut ialah contoh prosedur tersimpan dengan parameter input:

DELIMITER //

CREATE PROCEDURE select_products_by_category (IN category VARCHAR(50))
BEGIN
    SELECT * FROM products WHERE category = category;
END //

DELIMITER ;

Dalam prosedur tersimpan ini, kami menggunakan parameter input kategori IN, yang mewakili kategori produk masuk. Kami kemudiannya menanyakan data produk yang sepadan berdasarkan kategori tersebut.

Prosedur tersimpan juga menyokong pernyataan cawangan bersyarat dan pernyataan gelung, seperti IF, CASE, WHILE, LOOP, dsb. Berikut ialah contoh prosedur tersimpan menggunakan CASE:

DELIMITER //

CREATE PROCEDURE update_product_price (IN product_id INT, IN price DECIMAL(10,2))
BEGIN
    UPDATE products
    SET price = CASE
        WHEN id = product_id THEN price
        ELSE price
    END
    WHERE id = product_id;
END //

DELIMITER ;

Dalam prosedur tersimpan ini, kami menggunakan parameter input IN product_id untuk menentukan ID produk yang akan dikemas kini dan parameter input harga IN untuk menetapkan yang baharu nilai harga produk. Kami kemudian menggunakan penyata CASE untuk mengemas kini harga yang sepadan berdasarkan ID produk.

Prosedur tersimpan dalam MySQL juga boleh melakukan pengendalian pengecualian untuk mengendalikan beberapa situasi yang tidak dijangka. Berikut ialah contoh pengendalian pengecualian yang mudah:

DELIMITER //

CREATE PROCEDURE insert_product (IN product_name VARCHAR(50), IN price DECIMAL(10,2))
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        ROLLBACK;
        SELECT 'Error: Unable to insert product' AS message;
    END;
    
    START TRANSACTION;
    
    INSERT INTO products (name, price) VALUES (product_name, price);
    
    COMMIT;
    
    SELECT 'Product inserted successfully' AS message;
END //

DELIMITER ;

Dalam prosedur tersimpan ini, kami menggunakan pernyataan DECLARE EXIT HANDLER FOR SQLEXCEPTION untuk mengisytiharkan pengendalian pengecualian. Jika situasi tidak normal ditemui, kami akan melaksanakan pernyataan ROLLBACK dan mengeluarkan mesej ralat.

Selain blok kod sebenar, prosedur tersimpan juga mengandungi beberapa elemen lain seperti parameter, nilai pulangan dan ulasan.

Parameter merujuk kepada data yang diluluskan dalam prosedur tersimpan. Kami boleh mengisytiharkan jenis parameter dan kaedah penghantaran melalui parameter IN, OUT dan INOUT. Nilai pulangan merujuk kepada hasil pelaksanaan prosedur tersimpan Anda boleh menggunakan pernyataan RETURN untuk mengembalikan satu nilai atau berbilang nilai. Komen merujuk kepada teks yang menerangkan dan menggambarkan prosedur tersimpan, yang boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Ringkasan

Prosedur tersimpan dalam MySQL ialah ciri penting yang boleh meningkatkan prestasi dan kecekapan pangkalan data. Prosedur tersimpan digunakan untuk merangkum satu set pernyataan SQL dan boleh dipanggil beberapa kali untuk pelaksanaan. Prosedur tersimpan boleh menggunakan parameter input dan output untuk pemprosesan yang lebih fleksibel. Prosedur tersimpan juga menyokong pernyataan cawangan bersyarat dan pernyataan gelung, serta pengendalian pengecualian. Dalam MySQL, prosedur tersimpan perlu menetapkan pembatas baharu melalui DELIMITER untuk membezakan pernyataan dan arahan SQL dalam prosedur tersimpan. Prosedur tersimpan juga mengandungi elemen lain seperti parameter, nilai pulangan dan ulasan. Menguasai penggunaan prosedur tersimpan MySQL boleh meningkatkan kecekapan dan kualiti pengurusan pangkalan data dan pembangunan aplikasi dengan berkesan.

Atas ialah kandungan terperinci prosedur tersimpan mysql sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:mysql menukar dataArtikel seterusnya:mysql menukar data