光标被用于经过以记录为单位的操做,来获取数据库中数据的子集,所以程序能够依次丢光标里的每一行进行求职,光标通常用于过程化程序里嵌入SQL语句sql
简单理解能够存储一个查询返回的多行数据数据库
MySQL里对光标的声明语法spa
DECLARE CURSOR_NAME CURSOR FOR SELECT_STATEMENT
SQL Servercode
DECLARE CURSOR_NAME CURSOR FOR SELECT_STATEMENT [ FOR [READ ONLY | UPDATE{[COLUMN_LIST]}]
Oracle内存
DECLARE CURSOR_NAME CURSOR IS {SELECT_STATEMENT}
要使用光标,必须首先打开光标,当光标被打开时,指定光标的SELECT语句被执行,查询的结果被保存在内存里的特定区域资源
--在MySQL和Microsoft SQL Sever中打开一个光标 OPEN CURSOR_NAME --在Oracle里的语法 OPEN CURSOR_NAME[ PARAMETER1 [,PARAMETER2]]
MySQL求职
FETCH CURSOR_NAME INTO VRAIBLE_NAME,[VARIABLE_NAME]...
--用FETCH语句将 EMP_CURSOR里的内容获取到变量EMP_RECORD FETCH EMP_CURSOR INTO EMP_RECORD
Oracle变量
FETCH CURSOR_NAME{INTO :HOST_VARIABLE [[INDICATOR]:INDICATOR_VARIABLE] [,:HOST_VARIABLE [[INDICATOR]:INDICATOR_VARIABLE] |USING DESCRIPTOR DESCRIPTOR]}
SQL Server语法
FETCH NEXT FROM CURSOR_NAME[INTO FETCH_LIST]
SQL Server程序
--关闭光标 CLOSE CURSOR_NAME --释放光标 DEALLOCATE CURSOR CURSOR_NAME
MySQL和Oracle
CLOSE CURSOR_NAME --Mysql和Oracle没必要使用DEALLOCATE语句就能够释放资源和姓名