游標cursor是用來儲存查詢結果集的
資料型別 , 在儲存過程和函式中可以使用游標對結果集進行迴圈的處理。游標的使用包括游標的宣告、open、fetch 和 close,其語法分別如下:
宣告游標:
declare cursor_name cursor
for select_statement ;
open 游標:
open cursor_name ;
fetch 游標:
從第一行開始,每次fetch獲取到的是游標中的一整行的資料,再次呼叫自動讀取下一行的資料
將獲取到的資料通過關鍵字 into 賦值給變數,有幾列就要賦值給幾個變數
fetch cursor_name into var_name [
, var_name]..
.
close 游標:
close cursor_name ;
示例 :
初始化指令碼:
create
table emp(
id int(11
)not
null
auto_increment
, name varchar(50
)not
null
comment
'姓名'
, age int(11
)comment
'年齡'
, salary int(11
)comment
'薪水'
,primary
key(
`id`))
engine
=innodb
default
charset
=utf8 ;
insert
into emp(id,name,age,salary)
values
(null
,'金毛獅王',55
,3800),
(null
,'白眉鷹王',60
,4000),
(null
,'青翼蝠王',38
,2800),
(null
,'紫衫龍王',42
,1800
);
使用游標:
-- 通過儲存過程查詢emp表中資料, 並逐行獲取進行展示
create
procedure pro_test11(
)begin
--宣告要被賦值的變數
declare e_id int(11
);declare e_name varchar(50
);declare e_age int(11
);declare e_salary int(11
);--宣告游標
declare emp_result cursor
forselect
*from emp;
--開啟游標
open emp_result;
--fetch游標
fetch emp_result into e_id,e_name,e_age,e_salary;
select concat(
'id='
,e_id ,
', name='
,e_name,
', age='
, e_age,
', 薪資為: '
,e_salary)
;fetch emp_result into e_id,e_name,e_age,e_salary;
select concat(
'id='
,e_id ,
', name='
,e_name,
', age='
, e_age,
', 薪資為: '
,e_salary)
;fetch emp_result into e_id,e_name,e_age,e_salary;
select concat(
'id='
,e_id ,
', name='
,e_name,
', age='
, e_age,
', 薪資為: '
,e_salary)
;fetch emp_result into e_id,e_name,e_age,e_salary;
select concat(
'id='
,e_id ,
', name='
,e_name,
', age='
, e_age,
', 薪資為: '
,e_salary)
;--關閉游標
close emp_result;
end$
mysql游標型別 MySQL 游標
drop procedure if exists processorders create procedure processorders begin declare done boolean default 0 declare a int declare b varchar 20 定義游標遍歷時,...
mysql隱式游標 MYSQL 游標 動態游標示例
mysql沒有隱式和顯式游標之分,所用的游標都是顯式游標,也就是必須要進行定義游標變數,然後按照正規的流程使用,開啟 遍歷 關閉。以下是具體的使用方法。游標定義 1.declare cursor name cursor for select statement 游標操作 open 開啟游標 1.op...
mysql 解釋 游標賦值 Mysql 游標
mysql中的游標是乙個十分重要的概念。游標提供了一種對從表中檢索出的資料進行操作的靈活手段,就本質而言,游標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制。mysql中的游標的語法如下 declare cursor name cursor for select 宣告乙個游標,名稱...