본문 바로가기

프로그래밍 학습/SQL

[MSSQL] 커서(Cursor)의 개념과 사용방법!

728x90



커서의 개념

커서는 테이블에서 여러 개의 행을 쿼리한 후 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식입니다.한 행씩 읽을 때마다 파일 포인터는 자동으로 다음줄을 가르키게 됩니다.  만약 [1,박승원,부산]을 읽었으면 다음행인 [2,박윤화,울주] 이렇게 다음줄을 가리키게 됩니다. 


파일의 시작(BOF) Begin Of File 

1

박승원

부산 

2  

박윤화 

울주 

송지혜 

울대 

4  

최보라 

삼산

파일의 끝(EOF) End of File


1.파일을 연다(Open) 그리고 파일 포인터는 BOF를 가리킨다.

2..처음 데이터를 읽는다. '박승원' 데이터를 읽고 '박윤화' 데이터로 이동한다.

3.파일의 끝(EOF)까지 반복한다. 

->읽은 데이터 처리 -> 현재의 파일 포인터가 가리키는 데이터 읽기 -> 다음 행으로 이동

4.파일을 닫는다(Close)




커서의 처리 순서

커서의 선언(DECLARE)-> 커서열기(OPEN) ->커서에서 데이터가져오기(FETCH) -> 데이터처리 -> 커서닫기(CLOSE) -> 커서의 해제(DEALLOCATE)


커서의 사용방법


주석으로 다 설명을 해놓았어요! ㅎㅎ 결과값 확인해보시면 2가나올꺼에요! ㅎㅎ ! 코드를 안줄꺼에열! 직접 해보시면서 이해를 하시길 바랍니당.!


커서의 선언

GLOBAL 전역커서

모든 저장프로시저나 일괄처리에서 커서의 이름을 참조할 수 있다.

활용도 낮음 

LOCAL 지역커서

지정된 범위에서만 유효하며 해당 범위를 벗어나면 자동 소멸된다. 

활용도 높음

FOWARD_ONLY 

시작 행부터 끝행의 방향으로만 커서가 이동한다 그렇기 때문에 FETCH_NEXT만 사용가능

SCROLL 

커서의 이동이 자유롭기 때문에 FETCH 'NEXT/FIRST/LAST/PRIOR' 등을 사용할 수 있다.