《mysql必知必會》讀書筆記 遊標的使用

2023-01-20 01:21:04 字數 2306 閱讀 8565

mysql中游標只能用於儲存過程

create

procedure

processorders()

begin

declare ordernumbers cursor

forselect order_num from

orders;

end;

create

procedure

processorders()

begin

declare ordernumbers cursor

forselect order_num from

orders;

--開啟遊標

open

ordernumbers;

--關閉遊標

close

ordernumbers;

end;

create

procedure

processorders()

begin

--定義一個邏輯控制臨時變數

declare done boolean default0;

declare o int;--

建立遊標

declare ordernumbers cursor

forselect order_num from

orders;

--條件出現時執行的**:

--當sqlstate '02000'出現時,set done=1

--sqlstate '02000'是一個未找到條件,當repeat由於沒有更多行供迴圈而不能繼續迴圈時,出現這個條件

declare

continue handler for sqlstate '

02000

'set done=1;

--開啟遊標

open

ordernumbers;

--迴圈遍歷所有行

repeat

--得到資料

fetch ordernumbers into

o;--

結束迴圈

until done end

repeat;

--關閉遊標

close

ordernumbers;

end

注意:declare語句的次序,declare語句有特定的次序,用declare定義區域性變數必須在定義任意遊標或者控制代碼之前,而控制代碼又必須在遊標之後定義。

repeat語句的語法更適合對遊標進行迴圈

--

建立儲存過程

create

procedure

processorders()

begin

--定義臨時變數用於邏輯控制

declare done boolean default0;

--臨時變數

declare o int

;declare t decimal(8,2)--

建立遊標

declare ordernumbers cursor

forselect order_num from

orders;

--控制代碼

declare

continue handler for sqlstate '

02000

'set done=1;

--建立表ordertotals

create

table

ifnot

exists

ordertotals(

order_num

int,

total

decimal(8,2));

--開啟儲存過程

open

ordernumbers;

--遊標迴圈所有行

repeat

--獲取資料

fetch ordernumbers into

o;--

將得到的引數o傳入之前定義的儲存過程ordertotal

call ordertotal(o,1

,t);

--將得到的值存入表 ordertotals

insert

into

ordertotals(order_num,total)valuse(o,t);

--結束遊標迴圈

until done end

repeat;

--關閉遊標

close

ordernumbers;

end;

讀書筆記 mysql必知必會 25

目錄 建立觸發器 刪除觸發器 使用觸發器 insert觸發器 delete觸發器 update觸發器 關於觸發器的進一步介紹 如果你想要某條語句 或某些語句 在事件發生時自動執行 每當增加一個顧客到某個資料庫表時,都檢查其 號碼格式是否正確,州的縮寫是否為大寫 每當訂購一個產品時,都從庫存數量中減去...

讀書筆記 mysql必知必會 24

目錄 遊標 只能用於儲存過程 使用遊標 建立遊標 開啟和關閉遊標 使用遊標資料 mysql 檢索操作返回一組稱為結果集的行。這組返回的行都是與sql 語句相匹配的行 零行或多行 使用簡單的 select 語句,例如,沒有辦法得到第一行 下一行或前10行,也不存在每次一行地處理所有行的簡單方法 相對於...

《MySQL 必知必會》讀書筆記(1)

1.mysql 屬於c s 客戶機 伺服器 資料庫管理軟體 dbms 2.mysql 命令列內以 或 g 結束 3.選擇資料庫 use db name 4.顯示所有資料庫 show databases 顯示某資料庫中所有表 show tables 6.檢索資料庫 select prod id,pro...