存儲過程 特定功能的的SQL指令 進行封裝 編譯之後存儲在資料庫伺服器中客戶端通過名字調用這個SQL指令集 優點: 防止SQL 在網路中惡意修改 無需客戶端編寫 通過網路傳送 存儲過程 SQL存在邏輯關係 支持流程式控制制 分支 迴圈 ##基本語法 創建存儲過程 輸入參數 a 輸入參數b 都是 int ...
存儲過程
特定功能的的SQL指令 進行封裝 編譯之後存儲在資料庫伺服器中客戶端通過名字調用這個SQL指令集
優點: 防止SQL 在網路中惡意修改 無需客戶端編寫 通過網路傳送
存儲過程 SQL存在邏輯關係 支持流程式控制制 分支 迴圈
基本語法
創建存儲過程 輸入參數 a 輸入參數b 都是 int 類型 輸出參數是 c 也是 int類型
CREATE PROCEDURE proc_test(in a INT,in b INT,OUT c INT)
BEGIN
# 設置C的值
SET c = a + b;
END
# 調用存儲過程
set @Num = 0;# 定義一個變數
CALL proc_test(100,100,@Num)
SELECT @Num # 查詢變數的數據
存儲過程變數
1.0 存儲過程的變數 分為 局部和全局變數 這個變數的作用域和 Java的類似 局部變數
只能在存儲過程中使用
CREATE PROCEDURE proc_test2(out c INT)
BEGIN
# 定義局部變數 預設是 0 數據類型是 整型
declare x int DEFAULT 0;
declare y int DEFAULT 1;
set c = x + y;
END
2.0 定義用戶變數(全局變數) 全局變數是 共用的 開發少使用全局變數 不好維護
set @num = 0; # 定義全局變數
3.0 把查詢的結果 存儲在 變數中
# 創建存儲過程
CREATE PROCEDURE proc_getID(out x int)
BEGIN
# 查詢 這個表 name = jon 這個人的 id 賦值給 x
SELECT id INTO x FROM girl where `name` = 'Jon';
END
# 定義變數
SET @id = 0;
# 調用
CALL proc_getID(@id)
# 查詢
SELECT @id