日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

mysql function 与 procedure

發(fā)布時(shí)間:2025/7/14 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql function 与 procedure 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Mysql 的 function 和 procedure 有啥區(qū)別呢 ? 網(wǎng)上搜索后說 function 有返回值, procedure 無返回值。

1.return?

從function 的語法角度來說確實(shí)如此, function 的定義中有 return 一項(xiàng),如下所示

procedure:?

DROP PROCEDURE IF EXISTS `p_query_user` ; DELIMITER // CREATE PROCEDURE p_query_user() begindeclare c varchar(100) default '0';select 1111 ;end //DELIMITER ; CALL p_query_user();

?

function:

DROP FUNCTION IF EXISTS `f_query_user` ; DELIMITER // CREATE FUNCTION f_query_user() RETURNS varchar(100) CHARSET gbkbegindeclare c varchar(100) default '0';select 1111 INTO c;RETURN c; end //DELIMITER ; SELECT f_query_user();

2.select?

  • 在?procedure ?可以有 select 1111 ;
  • 在 function 中不能有 select 1111 ;

3.調(diào)用

?procedure ? 用 call 可以調(diào)用?

CALL p_query_user();

?

function 用 select 調(diào)用.

SELECT f_query_user();

?

4.參數(shù)帶默認(rèn)值

?procedure 不支持defualt值,可以改成set或者內(nèi)部定義變量加上 defualt關(guān)鍵字

?function?不支持defualt值,可以改成set或者內(nèi)部定義變量加上 defualt關(guān)鍵字

?

3. 讓我來簡單的說PROCEDURE可以返回值,也可以做一件事,比如幾個(gè)TABLE之間的數(shù)據(jù)轉(zhuǎn)來轉(zhuǎn)去,而FUNCTION一定要有返回值,還只能返回一個(gè).....

4.三點(diǎn)與存儲(chǔ)過程不同的地方:?
a,必須要一個(gè)RETURNS語句來定義返回值類型?
b,不能指定參數(shù)的IN、OUT或INOUT修飾符,所有參數(shù)隱式的為IN?
c,Function體必須包含RETURN語句來終結(jié)Function執(zhí)行并返回指定的結(jié)果給調(diào)用者?

?

2.考慮是使用函數(shù)還是使用存儲(chǔ)過程可以根據(jù)以下方面:
從參數(shù)的返回情況來看:如果返回多個(gè)參數(shù)值最好使用存儲(chǔ)過程,如果只有一個(gè)返回值的話可以使用函數(shù);
從調(diào)用情況來看:

(1)如果在SQL語句(DML或SELECT)中調(diào)用的話一定是存儲(chǔ)函數(shù)或存儲(chǔ)的封裝函數(shù)不可以是存儲(chǔ)過程,但調(diào)用存儲(chǔ)函數(shù)的時(shí)候還有好多限制以及函數(shù)的純度等級(jí)的問題,你可以參考《ORACLE 9I PL\SQL程序設(shè)計(jì)》(機(jī)械工業(yè)出版社);
(2)如果是在過程化語句中調(diào)用的話,就要看你要實(shí)現(xiàn)什么樣的功能。函數(shù)一般情況下是用來計(jì)算并返回一個(gè)計(jì)算結(jié)果而存儲(chǔ)過程一般是用來完成特定的數(shù)據(jù)操作(比如修改、插入數(shù)據(jù)庫表或執(zhí)行某些DDL語句等等),所以雖然他們的語法上很相似但用戶在使用他們的時(shí)候所需要完成的功能大部分情況下是不同的。

?

總結(jié)

以上是生活随笔為你收集整理的mysql function 与 procedure的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。