Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 커서 사용 단계 완벽 가이드: 선언부터 닫기까지

MySQL 커서(Cursor)란 무엇인가?

MySQL에서 커서는 저장 프로시저나 함수 내부에서 SELECT 쿼리의 결과 집합을 한 행씩 순회하며 처리할 수 있게 해주는 강력한 도구입니다. 커서를 효과적으로 사용하려면 반드시 정해진 순서의 단계를 따라야 합니다. 아래에서 MySQL 커서를 사용하는 네 가지 핵심 단계를 자세히 살펴보겠습니다.

1단계: 커서 선언(DECLARATION)

커서 사용의 첫 번째 단계는 DECLARE 문을 통해 커서를 선언하는 것입니다. 이때 주의할 점은 커서 선언은 반드시 변수 선언 이후에 위치해야 한다는 것입니다. 변수보다 먼저 커서를 선언하면 오류가 발생합니다.

커서 선언의 기본 문법은 다음과 같습니다.

DECLARE cursor_name CURSOR FOR SELECT-문;

2단계: 커서 열기(OPENING)

선언된 커서는 OPEN 문으로 열어야 실제로 사용할 수 있습니다. OPEN 문이 실행되면 커서에 연결된 결과 집합(result set)이 초기화됩니다. 따라서 결과 집합에서 행을 가져오기(FETCH) 전에 반드시 OPEN 문을 호출해야 합니다.

커서를 여는 기본 문법은 다음과 같습니다.

OPEN cursor_name;

3단계: 행 가져오기(FETCHING)

커서를 연 후에는 FETCH 문을 사용하여 커서가 현재 가리키는 행의 데이터를 변수에 담아 가져올 수 있습니다. FETCH가 실행되면 커서는 자동으로 결과 집합의 다음 행으로 이동합니다. 일반적으로 이 과정은 반복문(LOOP)과 함께 사용되어 모든 행을 순차적으로 처리합니다.

행을 가져오는 기본 문법은 다음과 같습니다.

FETCH cursor_name INTO 변수_목록;

참고로, 더 이상 가져올 행이 없을 때를 대비해 'NOT FOUND' 조건 핸들러를 함께 선언해 두면 루프를 안전하게 종료할 수 있습니다.

4단계: 커서 닫기(CLOSING)

모든 작업이 끝나면 마지막으로 CLOSE 문을 실행하여 커서를 비활성화하고 해당 커서가 점유하고 있던 메모리를 해제해야 합니다. 커서를 닫지 않으면 불필요한 리소스가 낭비될 수 있으므로, 사용 후에는 반드시 닫는 것이 좋은 습관입니다.

커서를 닫는 기본 문법은 다음과 같습니다.

CLOSE cursor_name;

정리

MySQL 커서의 사용 흐름을 요약하면 다음과 같습니다.

  • DECLARE: 변수 선언 후 커서를 선언한다
  • OPEN: 커서를 열어 결과 집합을 초기화한다
  • FETCH: 반복문을 통해 행 단위로 데이터를 가져와 처리한다
  • CLOSE: 작업 완료 후 커서를 닫고 메모리를 해제한다

이 네 가지 단계를 올바른 순서대로 적용하면 저장 프로시저 내에서 대량의 데이터를 안정적이고 체계적으로 처리할 수 있습니다.