91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何理解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

车致| 泗水县| 承德县| 思南县| 布尔津县| 永兴县| 菏泽市| 抚远县| 洛扎县| 海安县| 开远市| 葫芦岛市| 马尔康县| 晋宁县| 阿克陶县| 鄂伦春自治旗| 彩票| 泽库县| 罗城| 于都县| 福建省| 开封县| 阜南县| 富阳市| 兴安盟| 伊金霍洛旗| 河北区| 汉中市| 鹤壁市| 彰化市| 石棉县| 凤台县| 米泉市| 许昌县| 且末县| 平邑县| 麦盖提县| 浙江省| 揭阳市| 东光县| 铜鼓县|