mysql 저장 프로세스 생성(CREATE PROCEDURE) 및 호출(CALL) 및 변수 생성(DECLARE) 및 할당(SET) 작업 방법

3652 단어
본고의 실례는 mysql 저장 프로세스의 생성(CREATE PROCEDURE)과 호출(CALL) 및 변수 생성(DECLARE)과 할당(SET) 조작 방법을 설명한다.여러분에게 참고하도록 공유하겠습니다. 구체적으로는 다음과 같습니다.
저장 프로세스 생성(CREATE PROCEDURE) 및 호출(CALL)
이것은 우리가 정의라든지 용어라든지 말하지 않고 직접 실례를 보고 천천히 그것을 익히자.끝났습니다. GetAllProducts () 라는 간단한 저장 프로세스를 만듭니다. 이 GetAllProducts () 저장 프로세스는 주로 제품 테이블에서 모든 제품을 선택하는 데 사용됩니다.mysql 클라이언트 도구를 시작하고 다음 명령을 입력하십시오.

DELIMITER //
 CREATE PROCEDURE GetAllProducts()
  BEGIN
  SELECT * FROM products;
  END //
DELIMITER ;


우리 위의 ql를 자세히 봅시다.
4
  • 첫 번째 명령은 DELIMITER//이며 저장 프로세스 문법과 무관합니다.DELIMITER 문은 표준 구분자 - 세미콜론(;)을(으)로 변경합니다.이 경우 구분자는 세미콜론(;)에서이중 슬래시//로 변경합니다.왜 우리는 반드시 구분자를 변경해야 합니까?mysql 도구가 모든 문장을 한 번에 설명하지 않도록 저장 프로세스를 서버에 전체적으로 전달하려고 하기 때문입니다.END 키워드 다음에 구분자//를 사용하여 저장 프로세스의 끝을 나타냅니다.마지막 명령(DELIMITER;)구분자를 다시 세미콜론(;)으로 변경합니다.

  • 4
  • CREATE PROCEDURE 문을 사용하여 새 저장 프로세스를 생성합니다.CREATE PROCEDURE 문 뒤에 저장 프로세스의 이름을 지정합니다.이 예에서 저장 프로세스의 이름은: GetAllProducts이고, 저장 프로세스의 이름 뒤에 괄호를 놓는다

  • 4
  • BEGIN과 END 사이의 부분을 저장 프로세스의 주체라고 한다.비즈니스 로직을 처리하기 위해 선언적 SQL 문을 바디에 배치합니다.이 저장 과정 중, 우리는 간단한 select 조회를 사용하여 제품스 표의 데이터를 조회한다

  • 위의 sql를 통해 우리는 저장 프로세스를 만들었다고 할 수 있다. 일이 끝나면 저장 프로세스를 호출하고 다음 호출 문법을 살펴보자.
    
    CALL STORED_PROCEDURE_NAME();
    
    

    GetAllProducts() 스토리지 프로세스를 호출하는 구체적인 sql에 대해 살펴보겠습니다.
    
    CALL GetAllProducts();
    
    

    위의 ql를 실행하면 저장 과정 중의 ql의 실행 결과를 볼 수 있습니다.
    변수 생성(DECLARE) 및 지정(SET)
    우리는 변수가 명명된 데이터 대상이라는 것을 알고 있으며, 변수의 값은 저장 과정이 실행되는 동안 변경할 수 있다.우리는 다음에 저장 과정 중의 변수를 사용하여 직접/간접 결과를 저장하려고 시도한다.이러한 변수는 저장 프로세스의 로컬 변수이지만, 변수는 반드시 먼저 성명한 후에야 그것을 사용할 수 있다는 것을 주의해야 한다.그러나 저장 과정에서 변수를 설명하려면 DECLARE 문장을 사용하여 다음 sql 문법을 볼 수 있습니다.
    
    DECLARE variable_name datatype(size) DEFAULT default_value;
    
    

    위의 ql가 구체적으로 무슨 뜻인지 살펴보자.
    4
  • 먼저 DECLARE 키워드 뒤에 변수 이름을 지정합니다.변수 이름은 MySQL 테이블 열 이름의 명명 규칙을 따라야 합니다

  • 4
  • 그 다음으로 변수의 데이터 유형과 크기를 지정합니다.변수는 INT,VARCHAR,DATETIME 등 모든 mysql 데이터 형식을 가질 수 있습니다

  • 마지막으로 변수를 선언할 때 초기 값은 NULL입니다.하지만 DEFAULT 키워드를 사용하여 변수에 기본값을 할당할 수 있습니다
    저희가 이어서 토탈이라는 이름을...sale의 변수, 데이터 유형은 INT이고 기본값은 0입니다.다음 sql 보기:
    
    DECLARE total_sale INT DEFAULT 0;
    
    

    그 중에서 mysql은 하나의 DECLARE 문장으로 같은 데이터 형식의 두 개 이상의 변수를 공유할 수 있습니다. 이것은 하나의 sql를 보십시오.
    
    DECLARE x, y INT DEFAULT 0;
    
    

    위의 ql에서 우리는 두 개의 정수 변수 x와 y를 설명하고 기본값을 0으로 설정합니다.끝났습니다. 변수 설정이 끝났으니 그 다음에 값을 분배해야 합니다. 만약에 변수에 값을 분배하려면 SET 문장을 사용해서 실례를 볼 수 있습니다.
    
    DECLARE total_count INT DEFAULT 0;
    SET total_count = 10;
    
    

    위의 ql문장에서 우리는 total 을 분배한다count 변수의 값은 10입니다.작업을 마치면 SET 문 외에도 SELECT INTO 문을 사용하여 인스턴스를 볼 때 질의 결과를 변수에 지정할 수 있습니다.
    
    DECLARE total_products INT DEFAULT 0
     
    SELECT COUNT(*) INTO total_products
    FROM products
    
    

    위의 ql에서 우리는 다음과 같이 이해해야 한다.
    4
  • 먼저, 토탈products의 변수이며 그 값을 0으로 초기화합니다

  • 4
  • 그리고 SELECT INTO 문을 사용하여 total제품 변수, 데이터베이스에 있는 제품 표에서 선택한 제품 수량

  • 우리는 변수가 자신의 생명 주기를 정의하는 데 사용되는 범위(작용역)가 있다는 것을 안다.그러나 저장 과정에서 변수를 성명하면 저장 과정의 END 문장에 도달할 때 범위를 넘어서 다른 코드 블록에 접근할 수 없습니다.
    만약 우리가 BEGIN END 블록에서 변수를 성명한다면, END에 도달하면, 그것은 범위를 넘어설 것이다.우리는 또한 서로 다른 작용역에서 같은 명칭을 가진 두 개 이상의 변수를 성명할 수 있다. 왜냐하면 변수는 자신의 작용역에서만 유효하기 때문이다.그러나 서로 다른 범위 내에서 같은 이름을 가진 변수를 성명하는 것은 좋은 프로그래밍 습관이 아니다.여기서 @ 기호로 시작하는 변수는 세션이 끝날 때까지 사용할 수 있고 접근할 수 있는 세션 변수입니다.
    더 많은 MySQL 관련 내용에 관심이 있는 독자들은 본 사이트의 주제를 보실 수 있습니다.,,,,,, 및,
    본고에서 서술한 것이 여러분의 MySQL 데이터베이스 계산에 도움이 되었으면 합니다.

    좋은 웹페이지 즐겨찾기