본문 바로가기
Database/mysql

[MYSQL /Database] 커서 (cursor)

by JINJINC 2023. 4. 14.
728x90
반응형

 커서  CURSOR 

- 쿼리 결과를 한 행씩 처리하기 위한 방식
- SELECT 문으로 테이블 읽으면 전부다 읽어버리는데 cursor를 사용해서 
  처음부터 하나하나 읽을 수 있게된다.

 

커서 문법


declare < 커서명>  cursor for <select 문>    ---------  커서 생성

open <커서명>                                                       --------- 커서 열기

fetch <커서명>                                                       ---------- 커서로 한행씩 읽기

close <커서명>                                                       ---------- [커서 닫기] 


drop procedure if exists proc_single_column_cusor;
delimiter $$
create procedure proc_single_column_cusor()
begin
	declare _name varchar(30);
    declare _name_list varchar(1000) default '' ;
    declare _cursor_usertbl cursor for select name from usertbl;
	
    open _cursor_usertbl;
    
    fetch _cursor_usertbl into _name;
    set _name_list = concat(_name_list, _name,' ');
    
    fetch _cursor_usertbl into _name;
    set _name_list = concat(_name_list, _name,' ');
    
    fetch _cursor_usertbl into _name;
    set _name_list = concat(_name_list, _name,' ');
    
    fetch _cursor_usertbl into _name;
    set _name_list = concat(_name_list, _name,' ');
    
    close _cursor_usertbl;
    select _name_list;
end $$
delimiter ;

call proc_single_column_cusor();

 

728x90
반응형

'Database > mysql' 카테고리의 다른 글

[MYSQL /Database] 트랜잭션의 격리 수준  (0) 2023.04.14
[MYSQL /Database] 트리거 trigger  (0) 2023.04.14
[MYSQL /Database] function 함수  (0) 2023.04.14

댓글