Rumah >pangkalan data >tutorial mysql >Adakah mysql mempunyai prosedur tersimpan?

Adakah mysql mempunyai prosedur tersimpan?

青灯夜游
青灯夜游asal
2022-06-15 18:37:113825semak imbas

mysql telah menyimpan prosedur. Prosedur tersimpan ialah satu set pernyataan SQL yang direka untuk melengkapkan fungsi tertentu MySQL versi 5.0 tidak menyokong prosedur tersimpan sebelum ini, tetapi ia menyokong prosedur tersimpan bermula dari versi 5.0 Ini bukan sahaja meningkatkan kelajuan pemprosesan pangkalan data, tetapi juga meningkatkan fleksibiliti pengaturcaraan pangkalan data. Prosedur tersimpan boleh digunakan untuk menukar data, memindahkan data dan membuat laporan Ia serupa dengan bahasa pengaturcaraan Setelah berjaya dilaksanakan, ia boleh dipanggil pada bila-bila masa untuk menyelesaikan operasi fungsi yang ditentukan.

Adakah mysql mempunyai prosedur tersimpan?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

mysql telah menyimpan prosedur.

Prosedur tersimpan ialah satu set pernyataan SQL yang direka untuk mencapai fungsi tertentu. Tujuan menggunakan prosedur tersimpan adalah untuk pra-menulis kerja biasa atau kompleks dengan pernyataan SQL dan menyimpannya dengan nama tertentu Prosedur ini disusun dan dioptimumkan dan disimpan dalam pelayan pangkalan data, jadi ia dipanggil prosedur tersimpan. Apabila anda memerlukan pangkalan data untuk menyediakan perkhidmatan yang sama seperti prosedur tersimpan yang ditentukan pada masa hadapan, anda hanya perlu memanggil "CALL nama prosedur yang disimpan" untuk melengkapkannya secara automatik.

Pernyataan SQL yang biasa digunakan untuk mengendalikan pangkalan data perlu disusun dahulu dan kemudian dilaksanakan. Prosedur tersimpan mengambil pendekatan lain untuk melaksanakan pernyataan SQL.

Prosedur tersimpan ialah fungsi boleh atur cara yang dicipta dan disimpan dalam pangkalan data Ia biasanya terdiri daripada pernyataan SQL dan beberapa struktur kawalan khas. Prosedur tersimpan amat sesuai apabila anda ingin melaksanakan fungsi khusus yang sama pada aplikasi atau platform yang berbeza.

Versi MySQL 5.0 tidak menyokong prosedur tersimpan sebelum ini, yang sangat mengurangkan penggunaan MySQL. MySQL telah menyokong prosedur tersimpan sejak versi 5.0, yang bukan sahaja meningkatkan kelajuan pemprosesan pangkalan data, tetapi juga meningkatkan fleksibiliti pengaturcaraan pangkalan data

Prosedur tersimpan adalah fungsi penting dalam pangkalan data boleh digunakan Menukar data, memindahkan data dan membuat laporan adalah serupa dengan bahasa pengaturcaraan Setelah berjaya dilaksanakan, ia boleh dipanggil pada bila-bila masa untuk menyelesaikan operasi fungsi yang ditentukan.

Menggunakan prosedur tersimpan bukan sahaja boleh meningkatkan kecekapan capaian pangkalan data, tetapi juga meningkatkan keselamatan penggunaan pangkalan data.

Untuk pemanggil, prosedur tersimpan merangkum pernyataan SQL, dan pemanggil tidak perlu mempertimbangkan proses pelaksanaan khusus fungsi logik. Hanya panggilan mudah, ia boleh dipanggil dari bahasa pengaturcaraan seperti Java dan C#.

Menulis prosedur tersimpan sedikit lebih menuntut bagi pembangun, tetapi ini tidak menjejaskan penggunaan biasa prosedur tersimpan, kerana prosedur tersimpan mempunyai kelebihan berikut:

1) Enkapsulasi

Biasanya berbilang pernyataan SQL diperlukan untuk melengkapkan fungsi logik, dan parameter mungkin akan dihantar antara setiap pernyataan Oleh itu, menulis fungsi logik adalah agak rumit, dan prosedur tersimpan boleh Mengandungi pernyataan SQL ini menjadi unit bebas supaya dunia luar tidak dapat melihat pernyataan SQL yang kompleks dan hanya memerlukan panggilan mudah untuk mencapai tujuan. Dan profesional pangkalan data boleh mengubah suai prosedur yang disimpan pada bila-bila masa tanpa menjejaskan kod sumber aplikasi yang memanggilnya.

2) Boleh meningkatkan fungsi dan fleksibiliti pernyataan SQL

Prosedur tersimpan boleh ditulis dengan pernyataan kawalan aliran, yang mempunyai fleksibiliti yang kuat dan boleh melengkapkan pertimbangan yang kompleks dan banyak lagi operasi yang kompleks.

3) Boleh mengurangkan trafik rangkaian

Memandangkan prosedur tersimpan dijalankan di bahagian pelayan dan dilaksanakan dengan cepat, apabila prosedur tersimpan dipanggil pada komputer klien, Hanya pernyataan panggilan dihantar melalui rangkaian, sekali gus mengurangkan beban rangkaian.

4) Prestasi tinggi

Apabila prosedur tersimpan berjaya disusun, ia disimpan dalam pelayan pangkalan data, dan pelanggan boleh memanggilnya terus pada masa hadapan, jadi bahawa semua pernyataan SQL Akan dilaksanakan daripada pelayan, sekali gus meningkatkan prestasi. Walau bagaimanapun, perlu diingatkan bahawa lebih banyak prosedur disimpan, lebih baik penggunaan berlebihan prosedur tersimpan sebenarnya akan menjejaskan prestasi sistem.

5) Meningkatkan keselamatan pangkalan data dan integriti data

Salah satu cara untuk meningkatkan keselamatan prosedur tersimpan adalah dengan menggunakannya sebagai komponen perantaraan Prosedur tersimpan boleh dilaksanakan oleh sesetengah jadual operasi, dan kemudian prosedur yang disimpan disediakan sebagai antara muka kepada program luaran. Dengan cara ini, program luaran tidak boleh mengendalikan jadual pangkalan data secara langsung dan hanya boleh mengendalikan jadual yang sepadan melalui prosedur tersimpan Oleh itu, keselamatan boleh dipertingkatkan pada tahap tertentu.

6) Jadikan data bebas

Kebebasan data boleh mencapai kesan penyahgandingan, iaitu, atur cara boleh memanggil prosedur tersimpan dan bukannya melaksanakan beberapa pernyataan pernyataan SQL . Dalam kes ini, prosedur tersimpan mengasingkan data daripada pengguna Kelebihannya ialah apabila struktur jadual data berubah, tidak perlu mengubah suai program apabila memanggil jadual Pentadbir pangkalan data hanya perlu menulis semula prosedur tersimpan .

Contoh MySQL Stored Procedure

Kami akan menunjukkan kepada anda langkah demi langkah cara menggunakan CREATE PROCEDURE untuk membangunkan prosedur tersimpan MySQL pertama anda. Selain itu, kami akan menunjukkan kepada anda cara memanggil prosedur tersimpan daripada pernyataan SQL.

Menulis prosedur tersimpan MySQL pertama

Kami akan membangunkan prosedur tersimpan mudah untuk GetAllProducts() untuk membantu anda membiasakan diri dengan sintaks. Prosedur tersimpan GetAllProducts() memilih semua produk daripada jadual produk.

Lancarkan alat klien mysql dan taip arahan berikut:

 DELIMITER //
 CREATE PROCEDURE GetAllProducts()
   BEGIN
   SELECT productCode, productName FROM products;
   END //
 DELIMITER ;

Jalankan arahan:

mysql> DELIMITER //
mysql> CREATE PROCEDURE GetAllProducts()
-> BEGIN
-> SELECT productCode, productName FROM products;
-> END //
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;

Mari kita periksa prosedur tersimpan dengan lebih terperinci:

  • Arahan pertama ialah DELIMITER // dan tiada kaitan dengan sintaks prosedur tersimpan. Pernyataan DELIMITER menukar pembatas piawai (titik bertitik (;) kepada koma bernoktah lain). Dalam kes ini, pembatas berubah daripada koma bertitik (;) kepada garis miring berganda //. Mengapa kita perlu menukar pembatas? Kerana kami ingin menghantar prosedur tersimpan ke pelayan secara keseluruhan dan bukannya alat mysql mentafsir setiap pernyataan sekaligus. Selepas kata kunci TAMAT, kami menggunakan pembatas // untuk menunjukkan penghujung prosedur tersimpan. Perintah terakhir (DELIMITER; ) menukar pembatas kembali kepada koma bertitik (;).

  • Kami menggunakan kenyataan CREATE PROCEDURE untuk mencipta prosedur tersimpan baharu. Kami menyatakan nama prosedur yang disimpan selepas pernyataan CREATE PROCEDURE. Dalam kes ini, nama prosedur yang disimpan ialah GetAllProducts. Kami meletakkan kurungan selepas nama prosedur yang disimpan.

  • Bahagian antara MULA dan TAMAT dipanggil badan prosedur tersimpan. Anda meletakkan pernyataan SQL deklaratif dalam badan untuk mengendalikan logik perniagaan. Dalam prosedur tersimpan ini, kami menggunakan pernyataan SELECT mudah untuk menanyakan data dalam jadual produk.

Lihat prosedur tersimpan

Kita boleh menggunakan arahan berikut untuk melihat prosedur yang disimpan dalam pangkalan data yang ditentukan:

 select name from mysql.proc where db='mysqldemo';

Hasil berjalan:

Adakah mysql mempunyai prosedur tersimpan?

Panggil prosedur tersimpan

Untuk memanggil prosedur tersimpan, sila gunakan arahan SQL berikut:

CALL stored_procedure_name();

Anda menggunakan pernyataan CALL untuk memanggil prosedur tersimpan Contohnya, untuk memanggil prosedur tersimpan GetAllProducts(), gunakan pernyataan berikut:

CALL GetAllProducts();

Jika anda melaksanakan pernyataan di atas. , anda akan mendapat semua produk dalam jadual produk.

Adakah mysql mempunyai prosedur tersimpan?

[Cadangan berkaitan: tutorial video mysql]

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