Rumah  >  Artikel  >  pangkalan data  >  prosedur tersimpan mysql kembali

prosedur tersimpan mysql kembali

王林
王林asal
2023-05-11 17:25:371345semak imbas

Prosedur tersimpan MySQL pengembalian

Prosedur tersimpan MySQL ialah program yang boleh dilaksanakan dalam pangkalan data MySQL Ia boleh menerima parameter input, melaksanakan satu siri operasi dan mengembalikan hasil. Tidak seperti penyataan SQL, prosedur tersimpan boleh dikompilasi dan disimpan dalam pangkalan data MySQL, dengan itu meningkatkan kecekapan pelaksanaan program.

Prosedur tersimpan biasanya digunakan untuk pemprosesan logik perniagaan yang kompleks, yang boleh mengurangkan penghantaran data dan masa pemprosesan serta meningkatkan kecekapan pelaksanaan. Prosedur tersimpan juga menyediakan keselamatan dan kebolehselenggaraan yang lebih baik apabila membangunkan aplikasi.

Prosedur tersimpan MySQL boleh mengembalikan pelbagai jenis hasil, termasuk integer, rentetan, tarikh dan masa mudah, serta set hasil yang kompleks. Artikel ini menerangkan cara membuat prosedur tersimpan MySQL dan mengembalikan hasil.

Buat prosedur tersimpan MySQL

Prosedur tersimpan MySQL boleh dibuat dengan cara berikut:

CREATE PROCEDURE pro_name()
BEGIN    
    -- 存储过程的主体    
END;

Di mana pro_name ialah nama prosedur tersimpan, antara BEGIN dan END ialah prosedur tersimpan subjek.

Berikut ialah contoh prosedur tersimpan mudah yang boleh mengembalikan jumlah dua integer:

CREATE PROCEDURE add_numbers(IN a INT, IN b INT, OUT sum INT)
BEGIN
    SET sum = a + b;
END;

Prosedur tersimpan ini menerima dua parameter integer a dan b, menambahkannya dan menyimpannya ke dalam pembolehubah jumlah. Selepas prosedur tersimpan dilaksanakan, nilai pembolehubah jumlah akan dikembalikan.

Melaksanakan prosedur tersimpan MySQL

Prosedur tersimpan MySQL boleh dilaksanakan dengan cara berikut:

CALL pro_name();

Di mana pro_name ialah nama prosedur tersimpan yang akan dilaksanakan. Untuk prosedur tersimpan dalam contoh di atas, ia boleh dilaksanakan dengan cara berikut:

CALL add_numbers(1, 2, @sum);
SELECT @sum;

Kod di atas akan memanggil prosedur tersimpan add_numbers, menghantar 1 dan 2 sebagai parameter kepada a dan b, dan pembolehubah jumlah sebagai parameter keluaran. Seterusnya, anda boleh menggunakan pernyataan SELECT untuk mendapatkan nilai pembolehubah jumlah.

Prosedur tersimpan MySQL mengembalikan set hasil

Selain mengembalikan jenis data ringkas, prosedur tersimpan MySQL juga boleh mengembalikan set hasil. Set hasil ialah koleksi data yang boleh mengandungi berbilang baris dan lajur. Prosedur tersimpan MySQL boleh menggunakan kaedah berikut untuk mengembalikan set hasil:

CREATE PROCEDURE pro_name()
BEGIN    
    SELECT columns FROM table WHERE condition;    
END;

di mana lajur ialah nama lajur yang akan dikembalikan, jadual ialah nama jadual untuk disoal, dan syarat ialah syarat yang perlu diambil.

Berikut ialah contoh prosedur tersimpan yang mengembalikan set hasil:

CREATE PROCEDURE get_users()
BEGIN
    SELECT * FROM users;
END;

Prosedur tersimpan ini akan mengembalikan semua baris dan lajur dalam jadual pengguna. Prosedur tersimpan ini boleh dipanggil dengan:

CALL get_users();

Ini akan mengembalikan semua baris dan lajur dalam jadual pengguna.

Prosedur tersimpan MySQL mengembalikan beberapa set hasil

Prosedur tersimpan MySQL juga boleh mengembalikan beberapa set hasil. Set hasil berbilang ialah koleksi data yang dikembalikan oleh satu atau lebih pernyataan SELECT.

Prosedur tersimpan MySQL boleh mengembalikan berbilang set hasil dengan cara berikut:

CREATE PROCEDURE pro_name()
BEGIN    
    SELECT columns FROM table WHERE condition;    
    SELECT columns FROM table WHERE condition;    
END;

Di mana, lajur ialah nama lajur yang akan dikembalikan, jadual ialah nama jadual untuk disoal, dan syarat ialah syarat untuk diambil semula.

Berikut ialah contoh prosedur tersimpan yang mengembalikan berbilang set hasil:

CREATE PROCEDURE get_data()
BEGIN
    SELECT * FROM users;
    SELECT * FROM orders;
END;

Prosedur tersimpan ini akan mengembalikan semua baris dan lajur daripada jadual pengguna dan jadual pesanan. Prosedur tersimpan ini boleh dipanggil oleh:

CALL get_data();

Ini akan mengembalikan dua set hasil yang dikembalikan oleh dua pernyataan SELECT.

Prosedur tersimpan MySQL menggunakan pernyataan bersyarat untuk mengembalikan hasil

Prosedur tersimpan MySQL boleh menggunakan pernyataan bersyarat untuk mengembalikan hasil. Pernyataan bersyarat boleh menggunakan pernyataan seperti IF, CASE dan LOOP.

Berikut ialah contoh prosedur tersimpan yang menggunakan pernyataan IF untuk mengembalikan hasil:

CREATE PROCEDURE get_user_status(IN user_id INT, OUT status VARCHAR(255))
BEGIN
    DECLARE user_status INT;
    SELECT user_status INTO user_status FROM users WHERE id = user_id;
    
    IF user_status = 0 THEN
        SET status = 'Inactive';
    ELSEIF user_status = 1 THEN
        SET status = 'Active';
    ELSE
        SET status = 'Unknown';
    END IF;
END;

Prosedur tersimpan ini menerima user_id parameter integer dan mengembalikan rentetan berdasarkan status pengguna. Prosedur tersimpan mula-mula mendapatkan semula status pengguna yang sepadan dengan user_id daripada jadual pengguna dan menyimpannya dalam pembolehubah status_pengguna. Kemudian gunakan pernyataan IF untuk menyemak status pengguna dan tetapkan nilai pembolehubah status. Akhirnya, prosedur tersimpan mengembalikan pembolehubah status sebagai parameter output.

Di atas ialah beberapa contoh hasil yang dikembalikan oleh prosedur tersimpan MySQL Prosedur tersimpan adalah alat yang sangat berkuasa dan berguna dalam pangkalan data MySQL, yang boleh mengendalikan logik perniagaan yang kompleks dan meningkatkan kecekapan pelaksanaan aplikasi. Prosedur tersimpan yang sesuai harus dipilih untuk memproses data berdasarkan keperluan perniagaan tertentu.

Atas ialah kandungan terperinci prosedur tersimpan mysql kembali. 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:pendua pertanyaan mysqlArtikel seterusnya:pendua pertanyaan mysql