Rumah > pangkalan data > tutorial mysql > prosedur tersimpan pertanyaan mysql

prosedur tersimpan pertanyaan mysql

PHPz
Lepaskan: 2023-05-14 09:54:07
asal
901 orang telah melayarinya

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang menyokong berbilang bahasa pengaturcaraan. Apabila membangunkan aplikasi, kita sering perlu melaksanakan beberapa pernyataan pertanyaan SQL yang kompleks Pada masa ini, kita boleh menggunakan prosedur tersimpan MySQL untuk menyelesaikan kerja.

Prosedur tersimpan ialah koleksi pernyataan SQL yang menerima parameter dan mengembalikan set hasil. Berbanding dengan melaksanakan pernyataan SQL sahaja, menggunakan prosedur tersimpan mempunyai kelebihan berikut:

  1. Memudahkan kod aplikasi, menjadikan atur cara lebih mudah untuk diselenggara dan dikemas kini.
  2. Prosedur tersimpan berjalan lebih pantas daripada melaksanakan pernyataan SQL secara individu.
  3. Prosedur tersimpan boleh memastikan ketekalan dan keselamatan data.

Mari kita lihat beberapa contoh biasa prosedur tersimpan MySQL.

(1) Buat prosedur tersimpan mudah

BUAT PROSEDUR get_person(DALAM id INT)
MULA

SELECT * FROM person WHERE id = id;
Salin selepas log masuk

TAMAT;

The kod di atas mencipta prosedur tersimpan bernama get_person, dengan parameter input id dan mengembalikan semua maklumat untuk id yang ditentukan dalam jadual person. Jenis parameter boleh menjadi IN, OUT atau INOUT, masing-masing mewakili jenis input, output dan input/output.

Pernyataan untuk melaksanakan prosedur tersimpan ialah:

CALL get_person(1);

Pernyataan ini akan mengembalikan rekod dengan person 1 dalam jadual id .

(2) Cipta prosedur tersimpan dengan parameter output

CIPTA PROSEDUR get_status(IN id INT, OUT status VARCHAR(50))
MULAKAN

SELECT status FROM order WHERE id = id INTO status;
Salin selepas log masuk

TAMAT;

Prosedur tersimpan ini menerima parameter input id dan mengembalikan nilai medan order sepadan dengan id dalam jadual status ke dalam pembolehubah status.

Pernyataan untuk melaksanakan prosedur tersimpan ialah:

CALL get_status(1, @status);
SELECT @status;

Pernyataan ini akan mengeluarkan order jadual Nilai medan id rekod yang status ialah 1.

(3) Buat prosedur tersimpan dengan kursor

CIPTA PROSEDUR get_persons_by_age(DALAM umur INT)
MULAKAN

DECLARE done BOOLEAN DEFAULT FALSE;
DECLARE pid INT;
DECLARE pname VARCHAR(50);
DECLARE persons CURSOR FOR SELECT id, name FROM person WHERE age = age;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN persons;
repeat_row: LOOP
    FETCH persons INTO pid, pname;
    IF done THEN
        LEAVE repeat_row;
    END IF;
    SELECT pid, pname;
END LOOP;
CLOSE persons;
Salin selepas log masuk

TAMAT;

Prosedur tersimpan ini menerima parameter input age dan mengembalikan semua rekod dalam jadual person dengan age bersamaan dengan age.

Prosedur tersimpan ini menggunakan kursor untuk beralih melalui set hasil dan mengeluarkan nilai medan id dan name untuk setiap rekod.

Pernyataan untuk melaksanakan prosedur tersimpan ialah:

CALL get_persons_by_age(20);

Pernyataan ini akan mengembalikan semua rekod dalam jadual person dengan age berada 20, Dan keluarkan nilai id dan name mereka.

Ringkasnya, menggunakan prosedur tersimpan MySQL boleh menyelesaikan beberapa operasi pangkalan data yang kompleks dengan mudah dan meningkatkan kecekapan dan keselamatan aplikasi. Pembangun boleh mereka bentuk prosedur tersimpan yang sesuai berdasarkan keperluan sebenar untuk mencapai prestasi optimum dan kebolehselenggaraan.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan