日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7、调用存储过程和函数

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7、调用存储过程和函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

存儲過程和存儲函數都是存儲在服務器端的 SQL 語句集合。要想使用這些已經定義好的存儲過程和存儲函數就必須要通過調用的方式來實現。

存儲過程通過 CALL 語句來調用

存儲函數的使用方法與 MySQL 內部函數的使用方法相同

執行存儲過程和存儲函數需要擁有 EXECUTE 權限(EXECUTE 權限的信息存儲在 information_schema 數據庫下的 USER_PRIVILEGES 表中)。

本節主要講解如何調用存儲過程和存儲函數。

調用存儲過程

MySQL 中使用 CALL 語句來調用存儲過程。調用存儲過程后,數據庫系統將執行存儲過程中的 SQL 語句,然后將結果返回給輸出值。

CALL 語句接收存儲過程的名字以及需要傳遞給它的任意參數,基本語法形式如下:

CALL sp_name([parameter[...]]);

其中,sp_name 表示存儲過程的名稱,parameter 表示存儲過程的參數。
例 1

下面調用《2、創建存儲過程》中創建的存儲過程,SQL 語句和執行過程如下:

mysql> DELIMITER ; mysql> CALL ShowStuScore(); +--------------+---------------+ | student_name | student_score | +--------------+---------------+ | Dany | 90 | | Green | 99 | | Henry | 95 | | Jane | 98 | | Jim | 88 | | John | 94 | | Lily | 100 | | Susan | 96 | | Thomas | 93 | | Tom | 89 | +--------------+---------------+ 10 rows in set (0.00 sec) mysql> CALL GetScoreByStu('Green'); +---------------+ | student_score | +---------------+ | 99 | +---------------+

因為存儲過程實際上也是一種函數,所以存儲過程名后需要有( )符號,即使不傳遞參數也需要。

調用存儲函數

在 MySQL 中,存儲函數的使用方法與 MySQL 內部函數的使用方法是一樣的。換言之,用戶自己定義的存儲函數與 MySQL 內部函數是一個性質的。區別在于,存儲函數是用戶自己定義的,而內部函數是 MySQL 開發者定義的。

例 2
下面調用《6、存儲函數詳解,創建,查看,修改,刪除》一節中創建的存儲函數,SQL 語句和執行過程如下:

mysql> SELECT func_student(3); +-----------------+ | func_student(3) | +-----------------+ | 王五 | +-----------------+

通過例 1 和例 2 的比較,可以看出雖然存儲函數和存儲過程的定義稍有不同,但它們都可以實現相同的功能,我們應該在實際應用中靈活選擇。

總結

以上是生活随笔為你收集整理的7、调用存储过程和函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。