Rumah >pangkalan data >tutorial mysql >Apakah perbezaan antara prosedur tersimpan mysql dan fungsi tersimpan?

Apakah perbezaan antara prosedur tersimpan mysql dan fungsi tersimpan?

青灯夜游
青灯夜游asal
2022-02-17 15:22:2616646semak imbas

Perbezaan: 1. Fungsi tersimpan mempunyai banyak sekatan, manakala prosedur tersimpan mempunyai sekatan yang agak sedikit 2. Fungsi tersimpan akan mengembalikan satu dan hanya satu nilai hasil kepada pemanggil, manakala prosedur tersimpan akan mengembalikan satu atau Berbilang set hasil; ; 3. Terdapat tiga jenis parameter untuk prosedur tersimpan, dan hanya satu jenis parameter untuk fungsi tersimpan.

Apakah perbezaan antara prosedur tersimpan mysql dan fungsi tersimpan?

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

Apakah itu prosedur tersimpan?

Prosedur tersimpan ialah satu set pernyataan SQL yang digunakan untuk melengkapkan fungsi tertentu dalam sistem pangkalan data yang besar Ia disimpan dalam pangkalan data selepas disusun buat kali pertama tidak perlu disusun semula apabila dipanggil semula Pengguna melaksanakan prosedur tersimpan dengan menyatakan nama dan parameternya (jika prosedur tersimpan mempunyai parameter). Prosedur tersimpan adalah objek penting dalam pangkalan data, dan mana-mana aplikasi pangkalan data yang direka bentuk dengan baik harus menggunakan prosedur tersimpan.

Kelebihan:
(1) Guna Semula: Prosedur tersimpan boleh digunakan semula, yang boleh mengurangkan beban kerja pembangun.
(2) Meningkatkan kecekapan: Prosedur tersimpan akan disusun pada kali pertama ia digunakan Setelah disusun sekali, ia tidak perlu disusun semula, yang meningkatkan kecekapan.
(3) Kurangkan trafik rangkaian: Prosedur tersimpan terletak pada pelayan Apabila membuat panggilan, anda hanya perlu menghantar nama dan parameter prosedur tersimpan, sekali gus mengurangkan jumlah data yang dihantar melalui rangkaian.
(4) Keselamatan: Prosedur tersimpan berparameter boleh menghalang suntikan SQL dan kebenaran Berikan, Tolak dan Batal boleh digunakan pada prosedur tersimpan.

Kelemahan:
(1) Masalah nyahpepijat
(2) Mudah alih yang lemah
(3) Kebolehselenggaraan yang lemah

Kod:

CREATE DEFINER=`root`@`%` PROCEDURE `getName`(IN `uid` int,OUT my_uname VARCHAR(255))
BEGIN
	#Routine body goes here...
select admin_name into my_uname from admin_user where id=uid;
  select my_uname;
END

Apakah fungsi tersimpan?

Fungsi tersimpan ialah satu set prosedur tersimpan, dengan nama fungsi, parameter dan mengembalikan set hasil. Fungsi yang disimpan adalah serupa dalam struktur dengan prosedur yang disimpan, tetapi mesti mempunyai klausa pemulangan untuk mengembalikan hasil.

Kod:

CREATE DEFINER=`root`@`%` FUNCTION `queryChildrenAreaInfo`(areaId INT) RETURNS varchar(4000) CHARSET utf8
BEGIN
	DECLARE sTemp VARCHAR(4000);
	DECLARE sTempChd VARCHAR(4000);
	
	SET sTemp='$';
	SET sTempChd = CAST(areaId AS CHAR);
	
	WHILE sTempChd IS NOT NULL DO
	SET sTemp= CONCAT(sTemp,',',sTempChd);
	SELECT GROUP_CONCAT(id) INTO sTempChd FROM personal_dept WHERE FIND_IN_SET(dept_parentId,sTempChd)>0;
	END WHILE;
	RETURN sTemp;
END

Perbezaan antara prosedur tersimpan dan fungsi tersimpan

1 🎜>

Prosedur tersimpan dan fungsi tersimpan secara kolektif dipanggil rutin tersimpan. Sintaks kedua-duanya sangat serupa, tetapi mereka mempunyai kandungan yang berbeza.

Terdapat banyak sekatan pada fungsi storan Sebagai contoh, jadual sementara tidak boleh digunakan, hanya pembolehubah jadual boleh digunakan. Terdapat juga beberapa fungsi yang tidak tersedia dan sebagainya.

Sekatan ke atas prosedur tersimpan agak sedikit, dan fungsi yang akan dilaksanakan adalah lebih kompleks.

2. Perbezaan dalam nilai pulangan

Fungsi storan akan mengembalikan satu dan hanya satu nilai hasil kepada pemanggil.

Prosedur tersimpan akan mengembalikan satu atau lebih set hasil (fungsi tidak boleh melakukan ini), atau hanya untuk mencapai beberapa kesan atau tindakan tanpa mengembalikan hasil.

3. Kaedah panggilan yang berbeza Fungsi yang disimpan dibenamkan dalam sql dan boleh dipanggil dalam pilih, sama seperti fungsi terbina dalam, seperti cos(), sin( ).

4 Perbezaan dalam parameter

Jenis parameter fungsi yang disimpan adalah serupa dengan parameter IN

Terdapat tiga jenis parameter prosedur tersimpan: IN parameter, Parameter OUT, parameter INOUT

in: Data hanya dihantar dari luar untuk kegunaan dalaman (pemindahan nilai), yang boleh menjadi nilai berangka atau pembolehubah

keluar : hanya dibenarkan untuk kegunaan dalaman proses (tidak digunakan) Data luaran), untuk kegunaan luaran (pemindahan rujukan: data luaran akan dikosongkan terlebih dahulu sebelum memasuki dalaman), hanya boleh menjadi pembolehubah

keluar: luaran boleh digunakan secara dalaman, dan diubah suai secara dalaman juga boleh diberikan Untuk kegunaan luaran, pemindahan rujukan biasa hanya boleh melepasi pembolehubah.


Prosedur tersimpan ialah koleksi pernyataan SQL yang ditentukan pengguna Pengguna boleh memanggil prosedur tersimpan untuk mereka bentuk tugasan untuk jadual tertentu atau objek lain.

Fungsi biasanya merupakan kaedah yang ditentukan pangkalan data yang menerima parameter dan mengembalikan nilai beberapa jenis dan tidak melibatkan jadual pengguna tertentu.

[Cadangan berkaitan:

tutorial video mysql]

Atas ialah kandungan terperinci Apakah perbezaan antara prosedur tersimpan mysql dan fungsi 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
Artikel sebelumnya:Apakah fail mysql frm?Artikel seterusnya:Apakah fail mysql frm?