您好,登錄后才能下訂單哦!
day06 MySQL數據庫存儲過程和函數
一、存儲過程和函數的概述:
數據庫的存儲過程和存儲函數是指在數據庫中定義的一些sql語句的集合,直接調用這些存儲過程的名字或存儲函數的名字就可以直接使用這些sql。可以避免開發人員大量的寫一些sql語句操作數據,可以減少客戶端和服務器端的數據傳輸。所以,學好存儲過程和存儲函數也是很重要的哦!
二、存儲過程【procedure】
1、創建存儲過程
create procedure 自定義一個存儲名() begin select 語句 end; call 存儲名(); 調用存儲過程
2、刪除存儲過程
drop procedure 存儲名;
3、帶參數的存儲過程
3.1:in參數,即輸入參數
create procedure 存儲名(in 列名 數據類型) begin select 語句 end; call 存儲名(列名的值);
3.2:out參數,即輸出參數
create procedure 存儲名(out 列名 數據類型) begin select * into 列名 from 表名; end; call 存儲名(@列名);
3.3:inout參數,即輸入輸出參數
create procedure 存儲名(inout 列名 數據類型) begin select * into 列名 from 表名; end; set @列名=某個值 //定義一個變量并賦值 call 存儲名(@列名);
4、定義變量
4.1:定義局部變量
declare a int //定義 set a=10; //賦值 select a; //輸出
4.2:定義全局變量“@作為起始符”
set @b=20; //定義會話變量 select @b; //輸出
三、存儲函數【function】
1、創建存儲函數定義的實例。
create function 函數名(a int , b int) returns int begin declare c int; set c=a+b; return c; end; select 函數名(a的數值,b的數值) //調用存儲函數
四、光標的運用
在MySQL查詢數據庫腫,存儲過程和存儲函數中使用光標可以實現逐條的讀取結果集中的記錄。主要包括以下幾個步驟:
1、聲明光標:
declare 光標名 cursor select_name 譯;select_name:是一個select語句,返回一行或多行數據。
實例:
declare info_student cursor for select sid,name,age from student where sid=1;
2、打開光標
open 光標名稱
3、使用光標
fetch 光標名稱 into 列名;
4、關閉光標
close 光標名稱
五、查看存儲過程和函數
1、使用show status 語句查看
show { procedure | function } status [like 'pattern'] 譯: procedure:表示查詢存儲過程 function:表示查詢存儲函數 like 'pattern':用來匹配存儲過程或函數名稱。
2、使用show create語句查看
show create { procedure | function } sp_name; 譯; procedure:表示查詢存儲過程 function:表示查詢存儲函數 sp_name:表示存儲過程或函數名稱
3、修改存儲過程和存儲函數
alter { procedure | function } sp_name { contains sql | no sql | reads sql data | modifies sql data } | sql security { definer | invoker } | comment 'string' 譯: procedure | function:表示是存儲過程還是存儲函數 sp_name :表示名稱 contains sql:表示子程序包含sql語句,但是不包含讀寫數據的語句 no sql:表示子程序包含sql語句 reads sql data:表示子程序中包含讀數據的語句 modifies sql data :表示子程序中包含寫數據的語句 definer | invoker:表示指明權限執行,前者是定義者自己能夠執行, 后者是調用者可以執行 comment 'string':注釋信息
4、刪除存儲過程和存儲函數
drop { procedure | function } sp_name
六、結束語:
學到這里,存儲過程和存儲函數就已經學完了哦!好好消化一下吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。