Rumah  >  Artikel  >  pangkalan data  >  pengembalian prosedur tersimpan mysql

pengembalian prosedur tersimpan mysql

王林
王林asal
2023-05-11 18:44:07801semak imbas

Penggunaan prosedur tersimpan MySQL dan nilai pulangannya

Prosedur tersimpan MySQL ialah struktur seperti fungsi yang ditulis dalam pangkalan data MySQL, yang boleh membantu pengguna melaksanakan operasi data yang kompleks dengan cepat dan cekap. Sama seperti fungsi atau prosedur dalam bahasa pengaturcaraan lain, prosedur tersimpan membenarkan pengguna merangkum beberapa operasi yang biasa digunakan bersama-sama, menjadikan atur cara lebih mudah untuk diselenggara dan digunakan semula. Walau bagaimanapun, tidak seperti bahasa pengaturcaraan lain, prosedur tersimpan MySQL boleh memanipulasi data dan jadual secara langsung dalam pangkalan data apabila dilaksanakan.

Menggunakan prosedur tersimpan MySQL

Terdapat banyak faedah menggunakan prosedur tersimpan. Di satu pihak, ia boleh meningkatkan kecekapan pelaksanaan program, kerana prosedur yang disimpan hanya perlu disusun sekali dan boleh dipanggil beberapa kali. Sebaliknya, penghantaran rangkaian boleh dikurangkan kerana prosedur tersimpan boleh dilaksanakan secara langsung pada pelayan pangkalan data. Selain itu, prosedur tersimpan boleh meningkatkan keselamatan data kerana ia mengesahkan pengguna yang melaksanakannya.

Terdapat dua cara untuk mencipta prosedur tersimpan MySQL: baris arahan (Command Line) dan alatan pengurusan pangkalan data (seperti phpMyAdmin atau MySQL Workbench). Berikut ialah contoh menggunakan baris arahan untuk mencipta prosedur tersimpan:

DELIMITER $$
CREATE PROCEDURE `getProduct`(IN `productId` INT, OUT `productName` VARCHAR(100), OUT `productDescription` TEXT)
BEGIN
SELECT `productName`, `productDescription` FROM `products` WHERE `productId` = `productId`;
END$$
DELIMITER ;

Pernyataan DELIMITER dalam contoh di atas ialah pernyataan khas yang digunakan untuk memberitahu penterjemah MySQL untuk merawat rentetan "$$" sebagai Penghujung bendera pernyataan. Tujuannya adalah untuk memberitahu penterjemah MySQL bila hendak berhenti menghuraikan dan melaksanakan definisi dalam prosedur tersimpan.

Apabila membuat proses, anda perlu memasukkan jenis dan nama parameter. Dalam contoh di atas, parameter yang dihantar ialah productId jenis INT dan productName jenis VARCHAR dan productDescription of type TEXT dikembalikan.

Dalam prosedur tersimpan, anda boleh menggunakan pelbagai sintaks MySQL dan pernyataan bersyarat. Dalam contoh di atas, pernyataan SELECT digunakan untuk mendapatkan productName dan productDescription yang sepadan dengan productId daripada jadual.

Nilai pulangan prosedur tersimpan MySQL

Nilai pulangan prosedur tersimpan MySQL boleh menjadi sangat fleksibel dan boleh digunakan untuk menandakan status pemulangan, memulangkan keputusan atau memulangkan koleksi, dsb. Nilai pulangan prosedur tersimpan MySQL yang biasa digunakan adalah seperti berikut:

  1. Penyata RETURN

Penyata RETURN digunakan untuk mengembalikan satu nilai. Setelah pernyataan RETURN dicapai, prosedur tersimpan menghentikan pelaksanaan dan mengembalikan nilai yang ditentukan. Berikut ialah contoh mudah:

DELIMITER $$
CREATE PROCEDURE `helloWorld`(IN `name` VARCHAR(50))
BEGIN
SET @msg = CONCAT('Hello, ', name, '!') ;
RETURN @msg ;
END$$
DELIMITER ;

Dalam contoh di atas, prosedur tersimpan helloWorld ialah prosedur tersimpan yang menerima parameter nama dan mengembalikan rentetan menggunakan pernyataan RETURN.

  1. Parameter OUT atau INOUT

Parameter OUT atau INOUT digunakan untuk mengembalikan berbilang nilai. Contohnya, apabila prosedur tersimpan perlu mengembalikan berbilang nilai, anda boleh menentukan berbilang parameter OUT atau INOUT dalam prosedur tersimpan. Berikut ialah contoh mudah:

DELIMITER $$
CREATE PROCEDURE `orderSummary`(IN `orderId` INT, OUT `orderTotal` DECIMAL(15,2), OUT `orderSubtotal` DECIMAL(15,2), OUT `orderDiscount` DECIMAL(15,2))
BEGIN
SELECT `orderTotal`, `orderSubtotal`, `orderDiscount` FROM `orders` WHERE `orderID` = `orderId`;
END$$
DELIMITER ;

Dalam contoh di atas, pesanan prosedur tersimpanSummary menerima orderId jenis INT dan mengembalikan tiga nilai jenis DECIMAL: orderTotal, orderSubtotal, orderDiscount. Nilai ini akan disimpan dalam program yang memanggil prosedur tersimpan.

Prosedur tersimpan MySQL boleh digunakan untuk pelbagai tujuan. Anda boleh melaksanakan operasi kelompok dalam prosedur tersimpan, menambah kekangan konsisten pada pangkalan data dan berkongsi kod dan data antara berbilang prosedur tersimpan. Melalui contoh di atas, kita boleh mempelajari sintaks asas prosedur tersimpan MySQL dan cara menggunakan nilai pulangan Saya harap artikel ini dapat membantu semua orang.

Atas ialah kandungan terperinci pengembalian prosedur tersimpan mysql. 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