Mysql存儲(chǔ)過(guò)程和函數(shù)區(qū)別介紹
更新時(shí)間:2014年03月21日 11:20:16 作者:
這篇文章主要介紹了Mysql存儲(chǔ)過(guò)程和函數(shù)的區(qū)別,需要的朋友可以參考下
存儲(chǔ)過(guò)程是用戶定義的一系列sql語(yǔ)句的集合,涉及特定表或其它對(duì)象的任務(wù),用戶可以調(diào)用存儲(chǔ)過(guò)程,而函數(shù)通常是數(shù)據(jù)庫(kù)已定義的方法,它接收參數(shù)并返回某種類型的值并且不涉及特定用戶表。
存儲(chǔ)過(guò)程和函數(shù)存在以下幾個(gè)區(qū)別:
1)一般來(lái)說(shuō),存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對(duì)性比較強(qiáng)。存儲(chǔ)過(guò)程,功能強(qiáng)大,可以執(zhí)行包括修改表等一系列數(shù)據(jù)庫(kù)操作;用戶定義函數(shù)不能用于執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫(kù)狀態(tài)的操作。
2)對(duì)于存儲(chǔ)過(guò)程來(lái)說(shuō)可以返回參數(shù),如記錄集,而函數(shù)只能返回值或者表對(duì)象。函數(shù)只能返回一個(gè)變量;而存儲(chǔ)過(guò)程可以返回多個(gè)。存儲(chǔ)過(guò)程的參數(shù)可以有IN,OUT,INOUT三種類型,而函數(shù)只能有IN類~~存儲(chǔ)過(guò)程聲明時(shí)不需要返回類型,而函數(shù)聲明時(shí)需要描述返回類型,且函數(shù)體中必須包含一個(gè)有效的RETURN語(yǔ)句。
3)存儲(chǔ)過(guò)程,可以使用非確定函數(shù),不允許在用戶定義函數(shù)主體中內(nèi)置非確定函數(shù)。
4)存儲(chǔ)過(guò)程一般是作為一個(gè)獨(dú)立的部分來(lái)執(zhí)行( EXECUTE 語(yǔ)句執(zhí)行),而函數(shù)可以作為查詢語(yǔ)句的一個(gè)部分來(lái)調(diào)用(SELECT調(diào)用),由于函數(shù)可以返回一個(gè)表對(duì)象,因此它可以在查詢語(yǔ)句中位于FROM關(guān)鍵字的后面。 SQL語(yǔ)句中不可用存儲(chǔ)過(guò)程,而可以使用函數(shù)。
存儲(chǔ)過(guò)程和函數(shù)存在以下幾個(gè)區(qū)別:
1)一般來(lái)說(shuō),存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對(duì)性比較強(qiáng)。存儲(chǔ)過(guò)程,功能強(qiáng)大,可以執(zhí)行包括修改表等一系列數(shù)據(jù)庫(kù)操作;用戶定義函數(shù)不能用于執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫(kù)狀態(tài)的操作。
2)對(duì)于存儲(chǔ)過(guò)程來(lái)說(shuō)可以返回參數(shù),如記錄集,而函數(shù)只能返回值或者表對(duì)象。函數(shù)只能返回一個(gè)變量;而存儲(chǔ)過(guò)程可以返回多個(gè)。存儲(chǔ)過(guò)程的參數(shù)可以有IN,OUT,INOUT三種類型,而函數(shù)只能有IN類~~存儲(chǔ)過(guò)程聲明時(shí)不需要返回類型,而函數(shù)聲明時(shí)需要描述返回類型,且函數(shù)體中必須包含一個(gè)有效的RETURN語(yǔ)句。
3)存儲(chǔ)過(guò)程,可以使用非確定函數(shù),不允許在用戶定義函數(shù)主體中內(nèi)置非確定函數(shù)。
4)存儲(chǔ)過(guò)程一般是作為一個(gè)獨(dú)立的部分來(lái)執(zhí)行( EXECUTE 語(yǔ)句執(zhí)行),而函數(shù)可以作為查詢語(yǔ)句的一個(gè)部分來(lái)調(diào)用(SELECT調(diào)用),由于函數(shù)可以返回一個(gè)表對(duì)象,因此它可以在查詢語(yǔ)句中位于FROM關(guān)鍵字的后面。 SQL語(yǔ)句中不可用存儲(chǔ)過(guò)程,而可以使用函數(shù)。
相關(guān)文章
Sql查詢MySql數(shù)據(jù)庫(kù)中的表名和描述表中字段(列)信息
這篇文章主要介紹了Sql查詢獲取MySql數(shù)據(jù)庫(kù)中的表名和描述表中列名數(shù)據(jù)類型,長(zhǎng)度,精度,是否可以為null,默認(rèn)值,是否自增,是否是主鍵,列描述等列信息2017-12-12
使用MySQL MySqldump命令導(dǎo)出數(shù)據(jù)時(shí)的注意事項(xiàng)
這篇文章主要介紹了使用MySQL MySqldump命令導(dǎo)出數(shù)據(jù)時(shí)的注意事項(xiàng),很實(shí)用的經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2014-07-07

