[b]簡介:[/b]
mysql 儲存過程是從 mysql 5.0 開始逐漸增加新的功能。儲存過程可以提高資料庫的處理速度,同時也可以提高資料庫程式設計的靈活性。
[b]優點:[/b]
(1).儲存過程增強了sql語言的功能和靈活性。儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成複雜的判斷和較複雜的運算。
(2).儲存過程允許標準元件是程式設計。儲存過程被建立後,可以在程式中被多次呼叫,而不必重新編寫該儲存過程的sql語句。而且資料庫專業人員可以隨時對儲存過程進行修改,對應用程式源**毫無影響。
(3).儲存過程能實現較快的執行速度。如果某一操作包含大量的transaction-sql**或分別被多次執行,那麼儲存過程要比批處理的執行速度快很多。因為儲存過程是預編譯的。在首次執行乙個儲存過程時查詢,優化器對其進行分析優化,並且給出最終被儲存在系統表中的執行計畫。而批處理的transaction-sql語句在每次執行時都要進行編譯和優化,速度相對要慢一些。
(4).儲存過程能過減少網路流量。針對同乙個資料庫物件的操作(如查詢、修改),如果這一操作所涉及的transaction-sql語句被組織程儲存過程,那麼當在客戶計算機上呼叫該儲存過程時,網路中傳送的只是該呼叫語句,從而大大增加了網路流量並降低了網路負載。
(5).儲存過程可被作為一種安全機制來充分利用。系統管理員通過執行某一儲存過程的許可權進行限制,能夠實現對相應的資料的訪問許可權的限制,避免了非授權使用者對資料的訪問,保證了資料的安全。
[b]建立語法:[/b]
create procedure 儲存過程名字()
(
[in|out|inout] 引數 datatype
)
begin
sql語句;
end;
[b]例項:[/b]
delimiter $$
alter procedure `pro_add`
(a int,b int)
begin
declare c int;
if a is null then
set a = 0;
end if;
if b is null then
set b = 0;
end if;
set c = a + b;
select c as sum;
end$$
delimiter ;
[color=red]說明:mysql中預設的語句結束符為分號(;)。儲存過程中的sql語句需要分號來結束。為了避免衝突,首先用"delimiter &&"將mysql的結束符設定為&&。最後再用"delimiter ;"來將結束符恢復成分號,否則會出現不能編譯的問題。
[/color]
[b]儲存過程呼叫:[/b]
call pro_add(10,20);
output : sum
30
[b]儲存過程修改[/b]
alter sp_name [characteristic ...]
characteristic:
| sql security
| comment 'string'
[color=red]說明:看mysql官方文件針對此修改儲存過程語法,只能改名字和定義不能改裡面的內容。需要刪除重新建立。[/color]
[b]例項:[/b]
delimiter $$
drop procedure if exists `pro_add`$$
create procedure `pro_add`(a int,b int)
begin
declare c int;
if a is null then
set a = 0;
end if;
if b is null then
set b = 0;
end if;
set c = a + b;
select c as sum;
end$$
delimiter ;
[b]儲存過程刪除:[/b]
drop [if exists] sp_name
[b]例項:[/b]
drop procedure if exists `pro_add`;
或 drop procedure if exists pro_add;
" 非 "
drop procedure if exists 'pro_add';
[color=red]
說明: if exists 子句是乙個mysql的擴充套件。如果程式或函式不存在,它防止發生錯誤。產生乙個可以用show warnings檢視的警告。
[/color]
mysql之儲存過程
mysql之儲存過程 儲存過程 注意 儲存過程名稱後面必須加括號,哪怕該儲存過程沒有引數傳遞 1.基本語法 create procedure sp name begin end修改命令結束符 delimiter 例 建立procedure create procedure myproce begin...
Mysql之儲存過程
1.進入到資料庫中檢視 是否有相關的儲存過程資料 show procedure status where db test 2.建立簡單的儲存過程 create procedure hi select hello 3.呼叫儲存過程 call hi 事例 三 mysql 儲存過程特點 建立 mysql ...
MySQL 儲存程式之儲存過程
1.儲存引擎簡介是mysql的核心,一組軟體包括快取軟體,語法語義分析,解析的軟體等,不同的儲存引擎提供不同的儲存機制,索引技巧,鎖定水平等功能。可以根據不同的功能來設定不同的儲存引擎。innodb 事務性資料庫的首選,執行安全性資料庫,行鎖定和外來鍵。顯示支援的儲存引擎 show engines ...