>  기사  >  데이터 베이스  >  mysql 저장 프로시저 구문이란 무엇입니까?

mysql 저장 프로시저 구문이란 무엇입니까?

WBOY
WBOY원래의
2022-02-17 14:46:416809검색

mysql에서는 "CREATE PROCEDURE" 문을 사용하여 저장 프로시저를 생성할 수 있습니다. 구문은 "CREATE PROCEDURE 프로세스 이름 프로세스 매개변수 프로세스 본문 프로세스 매개변수 형식 [IN|OUT|INOUT] 매개변수 이름 유형"입니다.

mysql 저장 프로시저 구문이란 무엇입니까?

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql 저장 프로시저의 구문은 무엇인가요?

SQL 문을 먼저 컴파일한 후 실행해야 하며, 저장 프로시저(Stored Procedure)는 특정 기능을 완료하기 위해 SQL 문 집합을 컴파일하여 데이터베이스에 저장합니다. . 사용자는 저장 프로시저 이름과 지정된 매개변수(저장 프로시저에 매개변수가 있는 경우)를 지정하여 호출합니다.

저장 프로시저는 데이터베이스에 생성되고 저장되는 프로그래밍 가능한 함수이며 SQL 문과 제어 구조로 구성될 수 있습니다. 저장 프로시저는 다양한 애플리케이션이나 플랫폼에서 동일한 기능을 수행하려는 경우 또는 특정 기능을 캡슐화하려는 경우에 유용합니다. 데이터베이스의 저장 프로시저는 프로그래밍의 객체 지향 접근 방식을 시뮬레이션한 것으로 볼 수 있으며 이를 통해 데이터 액세스 방법을 제어할 수 있습니다.

저장 프로시저의 장점:

(1) SQL 언어의 기능 및 유연성 향상: 저장 프로시저는 제어문으로 작성될 수 있고 강력한 유연성을 가지며 복잡한 판단과 더 복잡한 작업을 완료할 수 있습니다.

(2). 표준 구성 요소 프로그래밍: 저장 프로시저가 생성된 후에는 저장 프로시저의 SQL 문을 다시 작성할 필요 없이 프로그램에서 여러 번 호출할 수 있습니다. 그리고 데이터베이스 전문가는 애플리케이션 소스 코드에 영향을 주지 않고 언제든지 저장 프로시저를 수정할 수 있습니다.

(3) 더 빠른 실행 속도: 작업에 대량의 Transaction-SQL 코드가 포함되어 있거나 여러 번 실행되는 경우 저장 프로시저가 일괄 처리보다 훨씬 빠르게 실행됩니다. 저장 프로시저가 미리 컴파일되어 있기 때문입니다. 저장 프로시저가 처음 실행되면 최적화 프로그램이 쿼리를 분석하고 최적화하며 최종적으로 실행 계획이 시스템 테이블에 저장됩니다. 일괄 Transaction-SQL 문은 실행될 때마다 컴파일하고 최적화해야 하며 속도가 상대적으로 느립니다.

(4). 네트워크 트래픽 감소: 동일한 데이터베이스 개체에 대한 작업(예: 쿼리, 수정)의 경우 이 작업과 관련된 Transaction-SQL 문이 저장 프로시저로 구성되면 해당 저장 프로시저가 호출될 때 클라이언트 컴퓨터 이 과정에서 호출문만 네트워크를 통해 전송되므로 네트워크 트래픽이 크게 줄어들고 네트워크 부하가 줄어듭니다.

(5) 보안 메커니즘으로 최대한 활용: 특정 저장 프로세스의 실행 권한을 제한함으로써 해당 데이터에 대한 액세스 권한을 제한하고, 무단 사용자의 데이터 액세스를 방지하고 데이터를 보장할 수 있습니다. 보안.

MySQL 저장 프로시저

저장 프로시저는 데이터베이스의 중요한 기능입니다. MySQL 5.0은 이전에는 저장 프로시저를 지원하지 않았기 때문에 MySQL 적용이 크게 줄었습니다. 다행스럽게도 MySQL 5.0에서는 저장 프로시저를 지원하기 시작하여 데이터베이스 처리 속도를 크게 향상시키고 데이터베이스 프로그래밍의 유연성도 향상시킬 수 있습니다.

MySQL 저장 프로시저 생성

Syntax

CREATE PROCEDURE  过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体
DELIMITER //
  CREATE PROCEDURE myproc(OUT s int)
    BEGIN
      SELECT COUNT(*) INTO s FROM students;
    END
    //
DELIMITER ;

Delimiter

MySQL은 기본적으로 구분 기호로 ";"를 사용합니다. 프로시저는 오류를 보고하므로 미리 "DELIMITER //"를 사용하여 현재 세그먼트 구분 기호를 선언해야 합니다. 그러면 컴파일러는 두 "//" 사이의 내용을 저장 프로시저의 코드로 간주하여 실행하지 않습니다. 코드; "DELIMITER ;" 구분 기호를 복원한다는 의미입니다.

매개변수

저장 프로시저에는 필요에 따라 입력, 출력, 입력 및 출력 매개변수가 있을 수 있습니다. 매개변수가 여러 개인 경우 ","를 사용하여 구분하세요. MySQL 저장 프로시저의 매개변수는 IN, OUT, INOUT 세 가지 매개변수 유형이 있습니다. 저장 프로시저 호출 시 IN 매개변수의 값을 지정해야 합니다. 는 기본값입니다.

OUT: 이 값은 저장 프로시저 내에서 변경되어 반환될 수 있습니다.

INOUT: 호출 시 지정되며 변경 및 반환될 수 있습니다.

프로시저 본문

시작 프로세스 본문 사용의 끝은 BEGIN 및 END가 표시됩니다.

추천 학습:

mysql 비디오 튜토리얼

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

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