mysql 儲存過程筆記 mysql儲存過程筆記

2021-10-17 17:47:47 字數 1360 閱讀 4968

儲存過程是一組完成特定功能的sql語句集合,已經被編譯好,可以直接拿來被執行,可以傳參

引數有三種型別,in ,out ,inout 。

in型別的引數,可以在儲存過程的方法體裡面被呼叫,但是無法影響外部

out型別的引數,無法被內部呼叫,儲存過程出來的結果可以影響外部

inout型別的引數,可以被接收呼叫,出來的結果可以影響外部

儲存過程的意義

1.儲存過程只編譯一次,提高了資料庫執行效率

2.當對資料庫有複雜操作時,比如對多個表進行增刪改查,這些操作如果用程式來完成,就是一條條的sql語句,需要多次連線資料庫,而換成儲存過程,只需一次

3.儲存過程可以重複使用,節省開發時間

乙個儲存過程的例子

mysql> delimiter $$  #將語句的結束符號從分號;臨時改為兩個$$(可以是自定義)

mysql> create procedure delete_matches(in p_playerno integer)

-> begin

->   delete from matches

-> where playerno = p_playerno;

-> end$$

query ok, 0 rows affected (0.01 sec)

mysql> delimiter;  #將語句的結束符號恢復為分號

有的時候,儲存過程需要自定義引數

引數定義方式示例

declare l_int int unsigned default 4000000;

declare l_numeric number(8,2) default 9.95;

declare l_date date default '1999-12-31';

declare l_datetime datetime default '1999-12-31 23:59:59';

declare l_varchar varchar(255) default 'this will not be padded';

引數賦值示例

tp5 中使用儲存過程用的是 db::query(); 例如 result = db::query('call sp_query(8)');

這裡有個例子

Mysq 儲存過程

drop procedure if exists xl 建立儲存過程 delimiter 轉譯字元 使用 代替 create procedure xl begin select from fd car report end delimiter 轉譯字元 使用 代替 call xl 呼叫儲存過程 de...

MySQL儲存過程筆記

1.建立儲存過程 create procedure 儲存過程名稱 引數列表 begin sql語句塊 end注意 在mysql客戶端定義儲存過程的時候使用delimiter命令來把語句定界符從 變為 當使用delimiter命令時,你應該避免使用反斜槓 字元,因為那是mysql的轉義字元。如 mys...

MySql 儲存過程筆記

儲存過程簡稱過程,procedure,是一種沒有返回值的函式 create procedure 過程名字 引數列表 begin 過程體end 函式的檢視方式完全適用於過程 關鍵字換成procedure 檢視建立語句 show create procedure pro1 呼叫過程 過程沒有返回值,se...