>  기사  >  데이터 베이스  >  mysql 커서 저장 프로시저

mysql 커서 저장 프로시저

王林
王林원래의
2023-05-12 11:50:061131검색

MySQL 커서와 저장 프로시저는 데이터베이스 프로그래밍에서 매우 중요한 부분입니다. 이 기사에서는 MySQL 커서 및 저장 프로시저의 사용법과 작동을 자세히 소개합니다.

1. MySQL 커서

커서는 저장 프로시저의 루프 구조입니다. SELECT 문에서 반환되는 임시 개체입니다. MySQL 커서는 데이터 테이블의 행을 탐색하는 데 가장 일반적으로 사용됩니다. 커서를 사용하면 조작 또는 검사를 위해 데이터 테이블의 데이터에 행별로 액세스할 수 있습니다.

  1. 커서 정의 및 선언

DECLARE 문을 사용하여 커서를 정의하고 선언합니다. 다음은 커서 생성의 예입니다.

DECLARE cursor_name CURSOR FOR SELECT column_name FROM table_name;

DECLARE 문을 사용하여 "DECLARE 커서_이름 CURSOR"와 같은 커서를 정의할 수 있습니다. cursor_name은 커서의 이름이고 SELECT column_name FROM table_name은 커서에 사용된 데이터 세트를 반환하는 SELECT 문입니다. CURSOR 키워드는 MySQL에게 이것이 커서임을 알려줍니다.

  1. 커서 열기

커서를 열려면 다음 구문을 사용할 수 있습니다.

OPEN cursor_name;

OPEN 문은 MySQL에게 데이터베이스에서 데이터 검색을 시작하라고 지시합니다. 이때 커서의 데이터 행을 가져올 수 있습니다. , 그리고 다음 문을 계속 실행합니다.

  1. Get 커서 데이터

커서의 데이터를 가져오려면 FETCH 문을 사용할 수 있습니다. FETCH의 구문 구조는 다음과 같습니다.

FETCH cursor_name INTO variable_name;

FETCH 문은 커서에서 데이터 행을 가져와서 Variable_name에 저장합니다. Variable_name은 커서 쿼리에서 선택한 열의 데이터 유형과 일치해야 합니다.

  1. 커서 닫기

커서를 닫으려면 CLOSE 문을 사용하세요. 그러면 커서가 차지하고 있는 시스템 리소스가 해제됩니다.

CLOSE cursor_name;

2. MySQL 저장 프로시저

저장 프로시저는 데이터베이스 작업을 보다 효율적으로 수행하기 위해 생성된 사전 컴파일된 프로그램입니다. 저장 프로시저는 함수와 같은 매개변수를 수신하고 결과를 반환할 수 있습니다.

  1. 저장 프로시저 생성

MySQL에서 저장 프로시저를 생성하는 구문은 다음과 같습니다.

CREATE PROCEDURE procedure_name ()
BEGIN
    -- SQL 语句
END;

저장 프로시저를 생성할 때 이름(procedure_name)과 일부 SQL 문을 결정해야 합니다. BEGIN과 END 사이에 SQL 문을 작성하고 세미콜론을 사용하여 각 문을 구분합니다.

  1. 저장 프로시저 호출

저장 프로시저를 호출하려면 아래와 같이 CALL 문을 사용할 수 있습니다.

CALL procedure_name ();

저장 프로시저는 CALL 문을 사용하여 호출됩니다. CALL 옆에는 저장 프로시저 이름이 표시되고 그 뒤에는 저장 프로시저 이름이 표시됩니다. 괄호 목록이 있는 빈 매개변수를 사용합니다. 어떤 경우에는 CALL 문에서 명시적으로 지정할 수 있는 저장 프로시저에 매개 변수를 전달해야 할 수도 있습니다.

예를 들어 다음 저장 프로시저는 지정된 테이블에 새 레코드를 삽입합니다.

CREATE PROCEDURE insert_data()
BEGIN
    INSERT INTO table (column1, column2, column3) 
    VALUES (value1, value2, value3);
END;

이는 저장 프로시저의 매우 간단한 예이며 실제로는 더 복잡한 SQL 문과 논리가 필요할 수 있습니다.

  1. 저장 프로시저의 매개변수

저장 프로시저는 매개변수를 받을 수 있습니다. 매개변수는 입력(IN) 및 출력(OUT) 유형을 가질 수 있으며 MySQL이 지원하는 모든 데이터 유형이 될 수 있습니다.

다음 구문을 사용하여 저장 프로시저에서 매개 변수를 정의합니다.

CREATE PROCEDURE procedure_name (IN parameter1 datatype1, 
                                  OUT parameter2 datatype2)

위 구문은 저장 프로시저에 대해 서로 다른 데이터 유형과 입력/출력 방향을 갖는 두 개의 매개 변수, 매개 변수 1과 매개 변수 2를 정의합니다. 저장 프로시저에서 매개변수를 사용하는 경우 해당 매개변수를 SQL 문에서 변수로 사용할 수 있습니다.

예를 들어 다음 예에서는 데이터 행을 테이블에 삽입하고 저장 프로시저에서 사용할 수 있도록 ID 값을 반환합니다.

CREATE PROCEDURE insert_data (IN param1 VARCHAR(50), OUT param2 INT)
BEGIN
    INSERT INTO table (column1) 
    VALUES (param1);

    SET param2 = LAST_INSERT_ID();
END;

위는 MySQL 저장 프로시저 및 커서에 대한 기본 소개입니다. MySQL 저장 프로시저 및 커서는 때로는 커서를 사용하여 쿼리의 실행 효율성을 향상시킬 수 있으며 때로는 저장 프로시저를 사용하여 다음과 같은 작업을 수행할 수도 있습니다. 여러 쿼리를 결합합니다. 작업은 함께 패키지화되고 실행되어 코드를 단순화하고 유지 관리성을 향상시킵니다. 애플리케이션 시나리오가 다양해지면 저장 프로시저와 커서를 사용하는 방법과 기술이 더욱 다양해지며, 실제 개발에서는 특정 상황에 따라 유연하게 사용해야 합니다.

위 내용은 mysql 커서 저장 프로시저의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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