mysql深入淺出的筆記 儲存過程一

2022-04-25 09:45:57 字數 2202 閱讀 2688

1.儲存過程和函式....

儲存過程和函式是事先經過編譯並儲存在資料庫中的一段sql語句的集合,呼叫儲存過程和函式可以簡化應用開發人員的很多任務作,

減少資料在資料庫中和應用伺服器之間的傳說胡,對於提高資料處理的效率有很多好處.

2.儲存過程和函式的區別

1)函式必須有返回值,而儲存過程沒有

2) 儲存過程的引數有in,out,inout

而函式的只有in

3)儲存過程一般是作為乙個獨立的部分來執行( execute 語句執行),而函式可以作為查詢語句的乙個部分來呼叫(select呼叫),

由於函式可以返回乙個表物件,因此它可以在查詢語句中位於from關鍵字的後面。 sql語句中不可用儲存過程,而可以使用函式。

3.  建立儲存過程

1) create procedure f1( in p1 int,in p2 int ,out p3 int)

reads sql data

begin

select id

from inview

where p1 = inview_id

and p2 = stroe_id

and m1(id);

select found_rows() into p3;

end

2)

create procedure c1_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 ;

注:儲存過程中不能使用return...return只能使用在函式中...

儲存過程的呼叫...

call cl_add(10,20); //儲存過程需要使用call函式來進行呼叫...

set @a=10; set @b=20; //我們還可以定義兩個使用者變數...

call cl_add(@a,@b); //將使用者變數的值傳遞過去...

4.儲存過程和函式的create 語法不支援使用create or

replace 對儲存過程和函式進行修改,如果需要對已有的儲存過程或者函式進行修改,需要

執行alter 語法。

alter procedure f1 modifies sql data sql security invoker;

5.刪除儲存過程或函式

drop procedure f1;

drop function    .....;

6.檢視儲存過程或者函式的定義

show create sp_nam

7.變數的應用

1)變數的定義:declare定義乙個區域性變數,他的作用域為begin...end;

declare var_name[,...] type [default value]

例如定義乙個int 型別的變數p1:

declare p1 int;

2)變數的賦值  set var_name = 常量 ||表示式

set p1 =1;

深入淺出MySQL

說明索引的設計和使用 sql中的安全問題 常用sql技巧 sql優化過程 優化資料庫物件 鎖問題 本站 深入淺出mysql 個人部落格 深入淺出mysql 1 設計索引原則 2 小常識 3 btree索引 1 了解sql執行頻率 使用show session global statusa來獲得伺服器...

深入淺出MySQL筆記(二)

本筆記為學習該書所記,便於複習。包含第三 四章筆記。資料型別與運算子 toc 整數型別 zerofill unsigned auto increment 浮點數型別 定點數型別 decimal m,d show warningsl 位型別bit m hex data datatime timesta...

深入淺出MySQL筆記(三)

本筆記為學習該書所記,便於複習。包含第五 六章筆記。常用函式與圖形化工具的使用。toc 常用字串函式 concat s1,s2.sn 連線s1,s2.sn為乙個字串 insert str,x,y,instr 將字串str從第x位置開始,y個字元長的子串替換為字串instr lower str 將字串...