儲存過程(stored procedure)是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。
mysql 儲存過程是從mysql 5.0開始增加的新功能。大大提高資料庫的處理速度,同時也可以提高資料庫程式設計的靈活性。 過程:封裝起來的若干條語句,呼叫時這些封裝體執行。把此過程儲存到資料庫中即儲存過程. 函式:是乙個有返回值的「過程」。 過程:沒有返回值的函式。 儲存過程的優點:
1、儲存過程增強了
sql語言的功能和靈活性(可以sql程式設計,能使用變數,表示式、控制結構體)
2、儲存過程能實現較快的執行速度。(
儲存過程要比批處理的執行速度快很多,
因為儲存過程是預編譯的。在首次執行乙個儲存過程時查詢,優化器對其進行分析優化,並且給出最終被儲存在系統表中的執行計畫。而批處理的
transaction-sql
語句在每次執行時都要進行編譯和優化,速度相對要慢一些。
3、儲存過程能過減少網路流量。
針對同乙個資料庫物件的操作(如查詢、修改),如果這一操作所涉及的
transaction-sql
語句被組織程儲存過程,那麼當在客戶計算機上呼叫該儲存過程時,網路中傳送的只是該呼叫語句,從而大大增加了網路流量並降低了網路負載。
4、儲存過程可被作為一種安全機制來充分利用。
系統管理員通過執行某一儲存過程的許可權進行限制,能夠實現對相應的資料的訪問許可權的限制,避免了非授權使用者對資料的訪問,保證了資料的安全。
5、儲存過程允許標準元件是程式設計。儲存過程被建立後,可以在程式中被多次呼叫,而不必重新編寫該儲存過程的sql語句。而且資料庫專業人員可以隨時對儲存過程進行修改,對應用程式源**毫無影響。
儲存過程的建立:
delimiter $$ //定義分隔符
create procedure p() //p為過程名
begin
--sql語句 //封裝語句體
end $$
檢視已有的儲存過程:show procedure status \g;
呼叫儲存過程:call 儲存過程名稱();
刪除儲存過程:drop procedure 儲存過程名稱;
變數宣告:儲存過程中用declare宣告變數
格式:declare變數名 變數型別 [default 預設值]
儲存過程中,變數可以在sql語句中合法的運算,如+ - * /
運算結果如何賦值 set變數:=表示式
儲存過程傳參:儲存過程的括號裡,可以宣告引數。 語法是 create procedure p([in/out/inout] 引數名 引數型別 ..)
例項一:建立 運算 賦值
create procedure p1()
begin
declare age int default 18;
declare height int default 180;
set age := age +20;
select concat('年齡是', age, '身高是', height);
end$$
例項二 :if/else 控制結構
create procedure p2()
begin
declare age int default 18;
declare height int default 180;
if age >= 18 then
select "已成年";
else
select "未成年";
end if;
end$$
例項三:while/do 控制結構
求1-100的和
create procedure p3()
begin
declare total int default 0;
declare num int default 0;
while num<=100 do
set total := num + total;
set num := num + 1;
end while;
select total;
end$$
例項四:case 控制結構
create procedure p4()
begin
declare num int default 0;
set num := floor(4*rand());
case num
when 1 then select "cat";
when 2 then select "dog";
when 3 then select "sheep";
else select "pig";
end case;
end$$
例項五:repeat迴圈
create procedure p5()
begin
declare num int default 0;
declare total int default 0;
repeat
set total = num + total;
set num := num + 1;
until num>100 end repeat;
select total;
end$$
初識MySQL初識MySQL語句
什麼是資料庫?資料庫管理系統 資料庫管理員 資料庫伺服器 什麼是表?資料 記錄 mysql select user 檢視當前使用者 mysql exit 也可以用 q quit退出 預設使用者登陸之後並沒有實際操作的許可權 需要使用管理員root使用者登陸 mysql uroot p mysql5....
初識物件儲存
初識物件儲存 一 前言 隨著在各行業廣泛的應用,物件儲存技術逐漸被大眾所耳聞,特別是amazon於2006年推出的s3 storage service 以及作為openstack最初核心子專案之一的swift。本文試圖梳理物件儲存的一些基本概念,幫助讀者對其建立乙個初步的認識。二 什麼是物件儲存 物...
初識MySQL簡答題 初識mysql
資料儲存架構 資料庫伺服器執行資料庫管理系統 dbms 資料庫管理系統管理資料庫 database 資料庫組織表 table 表存放記錄 常見資料庫 關係型 rdbms 表結構形式儲存資料,要求每條資料有同樣的結構 mysql 最廣泛 oracle 金融 國企使用 sql server 教學使用 s...