reggieniccolosantos
1,591 views
12 slides
Oct 07, 2013
Slide 1 of 12
1
2
3
4
5
6
7
8
9
10
11
12
About This Presentation
MySQL Cursors
- Definition
- Syntax
- Example
Size: 431.72 KB
Language: en
Added: Oct 07, 2013
Slides: 12 pages
Slide Content
MySQL Cursors
Reggie Niccolo Santos
UP ITDC
Outline
What is a cursor?
Additional characteristics
Syntax
Example
What is a cursor?
Allows you to iterate through a result set
returned by a SELECT statement
Allows you to iterate over a set of rows
returned by a query and process each row
accordingly
MySQL Cursor Characteristics
Read-only
-You cannot update data in the
underlying table through the cursor
MySQL Cursor Characteristics
Non-scrollable
-You can only fetch rows in the order
determined by the SELECT
statement
-You cannot fetch rows in the
reversed order
-You cannot skip rows or jump to a
specific row in the result set
MySQL Cursor Characteristics
Asensitive
-Points to the actual data, whereas
an insensitive cursor uses a
temporary copy of the data
-Faster than an insensitive cursor
Syntax
DECLARE cursor_name CURSOR FOR
select_statement
OPEN cursor_name
FETCH [[NEXT] FROM] cursor_name INTO
var_name [, var_name] ...
CLOSE cursor_name
Things to Note
The SELECT statement cannot have an
INTO clause
Cursor declarations must appear before
handler declarations and after variable and
condition declarations
Things to Note
If no more rows are available, a No Data
condition occurs with a SQLSTATE value
'02000'. To detect this condition, you can
setup a handler for it (or for a NOT FOUND
condition)
# declare cursor for student email
DECLARE email_cursor CURSOR FOR
SELECT email FROM
student_record.students;
# declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;
Example
OPEN email_cursor;
get_email: LOOP
FETCH email_cursor INTO v_email;
IF v_finished = 1 THEN
LEAVE get_email;
END IF;
-- build email list
SET email_list = CONCAT(v_email, ";",
email_list);
END LOOP get_email;
CLOSE email_cursor;