亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解MySQL的存儲過程與光標

發布時間:2021-11-16 16:04:36 來源:億速云 閱讀:165 作者:柒染 欄目:MySQL數據庫

今天就跟大家聊聊有關如何理解MySQL的存儲過程與光標,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

MySQL的存儲過程與光標

一、存儲過程
T-sql 編程
增 刪 改 查 —》語句
MySQL是一門真正語言 T-sql 類似于函數 function

1.存儲過程:
創建格式:
create procedure 過程名稱(參數1,參數2,…….)
begin
  sql代碼
end
begin…and 就相當于以前{ 代碼段 }
預編譯,執行一次(編譯),后邊在使用直接調用編譯結果 ,速度快

create procedure spade()
begin
select * from books;
end
//

mysql默認情況下遇到; 就執行了, ; 執行符號
在存儲過程運行的時候delimiter符號修改執行符號

存儲過程的調用:
call 過程名() //執行一次 (編譯)

2、存儲過程中的參數:
in 傳入參數 把值傳進去
out 傳出參數 返回值
inout 傳入傳出參數 效率低下

in 輸id是幾查找第幾條記錄
create procedure one (in id int)
begin
select * from books where booksId=id;
end
//
call one(3);//

out 參數一個返回值
create procedure two (out spade int)
begin
select count(*) into spade from books;
end
//
注意:在sql 語句中賦值 into

在mysql 過程外邊的變量 需要 @a
call thr(@a)//
select @a //查看變量
注意:
mysql中變量
過程外 @變量名稱
過程內:聲明
declare 變量名稱 數據類型;

查找網站類型的圖書
查找到類型的id
根據類型的id 在到圖書表中 查找到對應的圖書
create procedure toto()
begin
declare btid int;
set btid=(select cid from category where cName=”大事記”);
select * from category where cid=btid;
end
//

3、條件和處理程序
在某些條件下 執行某些程序
declare handler_type handler for conditionValue sq_statement

handler_type 操作類型
continue 繼續
exit 退出
undo 忽略
conditionValue sql 錯誤的編號
02000 不正確的FETCH變量數目
23000 磁盤滿了
sq_statement 執行對應的操作

declare continue handler for sqlstate “02000” set done=1;
當出現02000錯誤時候, 設置 done=1 后邊程序繼續執行

二、光標 抓取數據的
1、聲明光標
declare 光標名稱 cursor for sql語句 (select)

2、打開光標
open 光標名稱

3、從光標中抓取數據
fetch 光表名稱 into

4、關閉光標
close 光標名稱
//抓取 btype中的數據
create procedure sex()
begin
declare id int;
declare name varchar(30);
declare done int default 0;
declare spade cursor for select * from books;
declare continue handler for sqlstate’02000’set done=1;
open spade;
repeat
fetch spade into id,name;
select id;
until done
end repeat;
close spade;
end
//
until false //終止條件不滿足
until true 終止條件滿足

補充:
if 條件 then
執行語句
else if 條件 then
執行語句
else if 條件 then
執行語句

else 以上條件都不滿足
end if

mysql存儲過程一般用來提高sql運行效率
php調用存儲過程
create procedure getDate()
begin
select * from btype;
end

刪除存儲過程
drop procedure 過程名;

查看存儲過程
show create procedure 過程名;

看完上述內容,你們對如何理解MySQL的存儲過程與光標有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁东县| 安多县| 平凉市| 玉田县| 余江县| 缙云县| 五家渠市| 葵青区| 汝城县| 昌黎县| 天门市| 洪洞县| 吉木乃县| 临颍县| 腾冲县| 望都县| 广州市| 昭苏县| 滕州市| 拉萨市| 称多县| 高雄县| 贺兰县| 中江县| 镇远县| 盐津县| 确山县| 怀远县| 闻喜县| 宜川县| 潜江市| 阜阳市| 乌兰浩特市| 全南县| 新绛县| 久治县| 莒南县| 靖宇县| 思南县| 甘南县| 郓城县|