>데이터 베이스 >MySQL 튜토리얼 >mysql에서 커서를 쓰는 방법

mysql에서 커서를 쓰는 방법

coldplay.xixi
coldplay.xixi원래의
2020-11-19 10:03:253024검색

mysql에서 커서를 작성하는 방법: 먼저 커서를 선언한 다음 커서를 엽니다. 코드는 [OPENcursor_name]입니다. 그런 다음 커서를 캡처하고 마지막으로 커서를 닫습니다.

mysql에서 커서를 쓰는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, MySQL 버전 5.8 이 방법은 모든 브랜드의 컴퓨터에 적합합니다.

관련 무료 학습 권장 사항: mysql 튜토리얼(동영상)

mysql에서 커서를 작성하는 방법:

1 커서란 무엇입니까

저장 프로시저나 함수에서 커서를 사용할 수 있습니다. 결과 세트를 반복합니다. 다음은 내 개인적인 의견입니다. 커서는 Java 루프의 자동 증가 변수 i와 유사합니다.

2. 커서 사용

커서 사용에는 다음 세 단계가 포함됩니다:

 1. 커서 선언

 형식: DECLARE 커서_이름 CURSOR FOR select_statement;DECLARE cursor_name CURSOR FOR select_statement;

    cursor_name:光标名,用户自己设定,最好见名知意。

    select_statement:完整的查询语句,查询表中的列名(后面案例详解)。

  2,开启光标

    cursor_name:声明时的光标名。

    格式:OPEN cursor_name;

  3,捕获光标

    格式:FETCH cursor_name INTO var_name...;(...表示可以有多个)

    cursor_name:声明时的光标名。

    var_name:自定义的变量名。(后面案例详解)

  4,关闭光标

    格式:CLOSE cursor_name;

Cursor_name: 커서 이름, 사용자가 직접 설정하는 것이 가장 좋습니다.

  select_statement: 완전한 쿼리문, 쿼리 테이블의 열 이름(아래 사례에 대한 자세한 설명).

 2. 커서 켜기

  Cursor_name : 선언되었을 때의 커서 이름.

  형식: OPEN 커서_이름;

 3. 커서 캡처

  형식: FETCH 커서_이름 INTO var_name...; (...은(는) 다음보다 많을 수 있음을 의미합니다. one)

  cursor_name: 선언 시 커서 이름입니다.

  var_name: 맞춤 변수 이름입니다. (사례에 대한 자세한 설명은 후술)

 4. 커서 닫기

 형식: CLOSEcursor_name;

  cursor_name: 선언 시 커서 이름.

3, 커서를 사용하는 작은 사례

이 사례는 실제적인 의미는 없으며 단지 커서의 사용법을 보여주기 위한 것입니다.

먼저 사용자 테이블을 생성하세요

CREATE TABLE `users` (
  `u_id` int(4) NOT NULL,
  `u_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `u_age` int(4) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

다음 데이터를 삽입하세요

저장 프로시저 생성 select_age

BEGIN
    #Routine body goes here...
    declare i_user_id int;
    declare i_user_age int;
    declare cur_age cursor for select u_id,u_age from users;
    declare exit handler for not FOUND close cur_age;
    set @age_ji = 0;
    set @age_ou = 0;
    
    open cur_age;
    REPEAT
        fetch cur_age into i_user_id,i_user_age;
        if i_user_id%2 = 1 THEN
            set @age_ji = @age_ji + i_user_age; 
        else
            set @age_ou = @age_ou + i_user_age;
        end if;
    until 0 end REPEAT;
    close cur_age;
END

저장 프로시저 호출

call select_age();
select @age_ji,@age_ou;
코드에 대한 자세한 설명:

1 먼저 커서가 이동하는 테이블의 열을 저장하는 데 사용되는 두 개의 로컬 변수 i_user_id 및 i_user_age를 정의합니다.

2. users 테이블의 u_id 및 u_age 열을 탐색하는 커서를 선언합니다. 🎜🎜3. 예외를 선언하고 예외가 발생하면 커서를 닫습니다. 🎜🎜4. 최종 결과를 저장하기 위해 두 개의 사용자 변수를 설정합니다. 🎜🎜5, 커서를 켜보세요. 🎜🎜6. 루프 본문을 작성합니다. 종료 조건은 테이블의 마지막 열로 이동하는 것입니다. 🎜🎜7. 커서를 캡처하고 탐색한 내용을 두 개의 로컬 변수에 넣습니다. 🎜🎜8. i_user_id의 패리티를 판단하여 두 사용자 변수에 각각 i_user_age를 추가합니다. 🎜🎜9. 🎜🎜🎜4, Notes🎜🎜🎜  변수, 사용자 정의 예외, 예외 처리, 커서는 모두 선언 키워드를 통해 정의되며, 이들 사이에는 순서 요구 사항이 있습니다. 변수와 사용자 정의 예외를 먼저 배치하고 커서 선언, 마지막으로 예외 처리 선언을 배치해야 합니다. 🎜

위 내용은 mysql에서 커서를 쓰는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.