一:儲存過程(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...