17、mysql中的存储过程的应用
生活随笔
收集整理的這篇文章主要介紹了
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中的存储过程的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己设置的路由器密码忘记了怎么办路由器密
- 下一篇: 19、mysql中定时器的创建和使用