av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL存儲(chǔ)函數(shù)詳解

存儲(chǔ)函數(shù)和存儲(chǔ)過程一樣,都是在數(shù)據(jù)庫中定義一些 SQL 語句的集合。存儲(chǔ)函數(shù)可以通過 return 語句返回函數(shù)值,主要用于計(jì)算并返回一個(gè)值。而存儲(chǔ)過程沒有直接返回值,主要用于執(zhí)行操作。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比麥積網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式麥積網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋麥積地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

在 MySQL 中,使用
CREATE FUNCTION 語句來創(chuàng)建存儲(chǔ)函數(shù),其語法形式如下:

CREATE FUNCTION sp_name ([func_parameter[...]])
RETURNS type
[characteristic ...] routine_body

其中:

  • sp_name 參數(shù):表示存儲(chǔ)函數(shù)的名稱;
  • func_parameter:表示存儲(chǔ)函數(shù)的參數(shù)列表;
  • RETURNS type:指定返回值的類型;
  • characteristic 參數(shù):指定存儲(chǔ)函數(shù)的特性,該參數(shù)的取值與存儲(chǔ)過程是一樣的;
  • routine_body 參數(shù):表示 SQL 代碼的內(nèi)容,可以用 BEGIN...END 來標(biāo)示 SQL 代碼的開始和結(jié)束。

注意:在具體創(chuàng)建函數(shù)時(shí),函數(shù)名不能與已經(jīng)存在的函數(shù)名重名。除了上述要求外,推薦函數(shù)名命名(標(biāo)識(shí)符)為 function_xxx 或者 func_xxx。

func_parameter 可以由多個(gè)參數(shù)組成,其中每個(gè)參數(shù)由參數(shù)名稱和參數(shù)類型組成,其形式如下:

[IN | OUT | INOUT] param_name type;

其中:

  • IN 表示輸入?yún)?shù),OUT 表示輸出參數(shù),INOUT 表示既可以輸入也可以輸出;
  • param_name 參數(shù)是存儲(chǔ)函數(shù)的參數(shù)名稱;
  • type 參數(shù)指定存儲(chǔ)函數(shù)的參數(shù)類型,該類型可以是 MySQL 數(shù)據(jù)庫的任意數(shù)據(jù)類型。

例 1

使用 CREATE FUNCTION 創(chuàng)建查詢 tb_student 表中某個(gè)學(xué)生姓名的函數(shù),SQL 語句和執(zhí)行過程如下:

mysql> USE test;
Database changed
mysql> DELIMITER //
mysql> CREATE FUNCTION func_student(id INT(11))
    -> RETURNS VARCHAR(20)
    -> COMMENT '查詢某個(gè)學(xué)生的姓名'
    -> BEGIN
    -> RETURN(SELECT name FROM tb_student WHERE tb_student.id = id);
    -> END //
Query OK, 0 rows affected (0.10 sec)
mysql> DELIMITER ;

上述代碼中,創(chuàng)建了 func_student 函數(shù),該函數(shù)擁有一個(gè)類型為 INT(11) 的參數(shù) id,返回值為 VARCHAR(20) 類型。SELECT 語句從 tb_student 表中查詢 id 字段值等于所傳入?yún)?shù) id 值的記錄,同時(shí)返回該條記錄的 name 字段值。

創(chuàng)建函數(shù)與創(chuàng)建存儲(chǔ)過程一樣,需要通過命令
DELIMITER // 將 SQL 語句的結(jié)束符由“;”修改為“//”,最后通過命令
DELIMITER ; 將結(jié)束符號(hào)修改成 SQL 語句中默認(rèn)的結(jié)束符號(hào)。

如果在存儲(chǔ)函數(shù)中的 RETURN 語句返回一個(gè)類型不同于函數(shù)的 RETURNS 子句中指定類型的值,返回值將被強(qiáng)制為恰當(dāng)?shù)念愋汀1热?,如果一個(gè)函數(shù)返回一個(gè) ENUM 或 SET 值,但是 RETURN 語句返回一個(gè)整數(shù),對(duì)于 SET 成員集的相應(yīng)的 ENUM 成員,從函數(shù)返回的值是字符串。

拓展閱讀

由于存儲(chǔ)函數(shù)和存儲(chǔ)過程的查看、修改、刪除等操作幾乎相同,所以我們不再詳細(xì)講解如何操作存儲(chǔ)函數(shù)了。

查看存儲(chǔ)函數(shù)的語法如下:

SHOW FUNCTION STATUS LIKE 存儲(chǔ)函數(shù)名;
SHOW CREATE FUNCTION 存儲(chǔ)函數(shù)名;
SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME=存儲(chǔ)函數(shù)名;

可以發(fā)現(xiàn),操作存儲(chǔ)函數(shù)和操作存儲(chǔ)過程不同的是將 PROCEDURE 替換成了 FUNCTION。同樣,修改存儲(chǔ)函數(shù)的語法如下:

ALTER FUNCTION 存儲(chǔ)函數(shù)名 [ 特征 ... ]

存儲(chǔ)函數(shù)的特征與存儲(chǔ)過程的基本一樣。

刪除存儲(chǔ)過程的語法如下:

DROP FUNCTION [ IF EXISTS ] <函數(shù)名>


文章題目:創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL存儲(chǔ)函數(shù)詳解
文章起源:http://uogjgqi.cn/article/ccdjhhd.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流