## 存儲過程的形參類型
存儲過程也允許提供參數(形參和實參):存儲的參數也和函數一樣,需要指定其類型。
但是存儲過程對參數還有額外的要求:自己的參數分類
#### in
表示參數從外部傳入到里面使用(過程內部使用):可以是直接數據也可以是保存數據的變量
#### out
表示參數是從過程里面把數據保存到變量中,交給外部使用:傳入的必須是變量
如果說傳入的out變量本身在外部有數據,那么在進入過程之后,第一件事就是被清空,設為NULL
#### inout
數據可以從外部傳入到過程內部使用,同時內部操作之后,又會將數據返還給外部。
語法:
過程名稱(形參)
~~~
(過程類型 變量名稱 數據類型) //形參寫法
~~~
~~~
create procedure hah(in int_1 int,out int_2 int,inout int_3 int)
begin
##查看三個傳入進來的數據的值
select int_1,int_2,int_3;
##修改三個變量的值
set int_1 = 10;
set int_2 = 100;
set int_3 = 1000;
select int_1,int_2,int_3;
##查看會話變量
select @n1,@n2,@n3;
##修改會話變量
set @n1 = 'a';
set @n2 = 'b';
set @n3 = 'c';
select @n1,@n2,@n3;
end
$$
~~~
~~~
call show(@n1,@n2,@n3);
~~~
結果: 分析結果:out類型的數據會被清空,其他正常

在執行過程之后,再次查看會話變量(外部)
~~~
+------+------+------+
| @n1 | @n2 | @n3 |
+------+------+------+
| a | 100 | 1000 |
+------+------+------+
~~~
- 數據庫介紹
- 數據庫基本概念
- SQL介紹
- MySQL服務端架構
- 庫操作
- 表操作
- 字段類型
- 整數類型
- 小數類型
- 字符串類型
- 日期/時間類型
- json類型
- 字段屬性
- Null
- 默認值
- 列描述
- 主鍵
- 自動增長
- 唯一鍵
- 數據庫基礎操作
- 增
- 刪
- 改
- 查
- 運算符
- 算術運算符
- 比較運算符
- 邏輯運算符
- in運算符
- is運算符
- like運算符
- 高級查詢
- 聯合查詢
- 連接查詢
- 交叉連接
- 內連接
- 外連接
- Using關鍵字
- 子查詢
- 標量子查詢
- 列子查詢
- 行子查詢
- 表子查詢
- exists子查詢
- 子查詢特定關鍵字
- 用戶權限管理
- 用戶管理
- 權限管理
- 外鍵
- 外鍵操作
- 外鍵基本要求
- 約束
- 視圖
- 事務安全
- 自動事務
- 手動事務
- 事務特點
- 變量
- 系統變量
- 會話變量
- 局部變量
- 流程結構
- if分支
- while循環
- 函數
- 內置函數
- 字符串函數
- 時間函數
- 數學函數
- 其他函數
- 存儲過程
- 與函數的區別
- 存儲過程操作
- 存儲過程的形參類型
- 觸發器
- 觸發器概念
- 觸發器操作