Mysql 儲存過程和函式

2021-08-20 02:49:59 字數 1642 閱讀 4612

一:儲存過程(procedure)

本質上沒區別,執行的本質都一樣。 

只是函式有如:只能返回乙個變數的限制。而儲存過程可以返回多個。   

函式是可以嵌入在sql中使用的,可以在select中呼叫,而儲存過程要讓sql的query 可以執行, 需要把 mysql_real_connect 的最後乙個引數設定為client_multi_statements。 

函式限制比較多,比如不能用臨時表,只能用表變數.還有一些函式都不可用等等.而儲存過程的限制相對就比較少。

語法:

create procedure procedure_name([procedure_parameter[,....]])

[characteristic...] routing_body

procedure_parameter每個引數語法如

procedure_parameter每個引數語法如下:

[in|out|inout\ parameter_name type

每個引數有三個部分組成,分別為輸入/輸出型別,引數名,引數型別

輸入/輸出型別:in 代表輸入,out代表輸出,inout 代表輸入/輸出型別.

parameter_name 代表引數名字,type代表型別

例如:

delmiter $$  

create procedure procedure_student_id(in name varchar(20))

begin

select student_id from student_info where name=student_name;

end$$

使用儲存函式 call procedure_student_id('小明');

二:函式

create function function_name([function_parameter[,...]])

[characteristic...] routing_body

例如:

create function search_id(name varchar(20))

returns int /*返回型別*/

begin

return (select student_id from students_info where name=student_name);

end$$

delimiter ;

使用函式:select search_id('xiaoming');

mysql 過程和函式 MySQL 儲存過程和函式

變數 系統變數 變數由系統提供,不是使用者自定義的,屬於伺服器層面 全域性變數 會話變數 如果是全域性級別,則需要加global,如果是會話級別,則需要加session,如果不寫,則預設是會話 檢視全域性變數 show global variables show global variablesli...

MySQL儲存過程和儲存函式

儲存過程和儲存函式 mysql的儲存過程 stored procedure 和函式 stored function 統稱為stored routines。1.儲存過程和函式的區別 函式只能通過return語句返回單個值或者表物件。而儲存過程不允許執行return,但是通過out引數返回多個值。函式是...

mysql儲存過程和函式

儲存過程是一系列sql語句集,具有靈活性,速度快,批處理 安全等特點 缺點 程式設計複雜 需要建立資料庫物件的許可權 掌握儲存過程的定義 檢視 修改 刪除 定義儲存過程 create procedure pro name parameter type characteristic routine b...