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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

17、mysql中的存储过程的应用

發布時間:2023/12/3 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17、mysql中的存储过程的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其實存儲過程也可以叫做過程,而函數也可以叫做存儲函數,兩者都是處理數據的一種方式,但是不同在于函數是必須要有返回值的,而過程則沒有返回值,過程可以理解為是一種用來處理數據的沒有返回值的函數,但是他們的語法又存在區別,接下來詳細的介紹一下存儲過程的使用

創建過程:

// 創建過程 create procedure 過程名字([參數列表]) begin-- 過程代碼 end;// 示例 create procedure getUserNames() beginselect uname from user; end;

這里需要說一下過程的參數列表,創建過程時需要用到限定類型,有三個:in、out、inout

in傳入數據供過程內部使用,可以是變量或者值,傳入的參數值不管在過程內部怎么修改,在過程外部不受影響。
out傳入的數據只能是變量,傳入到過程之后先置為NULL,過程內部修改變量值,外部受影響
inout傳入的數據只能是變量,過程內部修改變量值,外部受影響

就這幾個參數,光說也不是很好理解,下邊提供兩個過程,通過改變setName的限定值來看一下三者的區別

// setName的一個過程,依次修改限定的值 create procedure setName(in name varchar(30)) BEGIN// 先看一下傳遞進來的值SELECT name as first_name;// 過程內部改變傳遞進來的值set name = "123456";// 看一下修改之后的值select name as second_name; END;// getName的一個過程,看一下出入的參數值是否被修改 create procedure getName() BEGINDECLARE name VARCHAR(30) ;set name = "123";select name as init_name; // 將值傳入到setName修改值call setName(name);select name as last_name; END;依次修改setName的參數列表中限定詞,看一下打印情況,作用一目了然

查看過程:

// 查看所有的存儲過程 show procedure status\G;// 按著名稱查看存儲過程 show procedure status like '%me';// 查看過程的創建語句 show create procedure 過程名 show create procedure setName\G;

使用過程:

// 使用call關鍵字進行過程的使用 call getNames;

刪除過程:

// 刪除的基本語法都是 drop 類型 名稱 drop procedure setName;

以上就是對存儲過程的基本介紹

總結

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

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