> 데이터 베이스 > MySQL 튜토리얼 > Create Procedure 문을 사용하여 MySQL에서 저장된 프로 시저를 어떻게 작성합니까?

Create Procedure 문을 사용하여 MySQL에서 저장된 프로 시저를 어떻게 작성합니까?

Johnathan Smith
풀어 주다: 2025-03-19 15:55:29
원래의
554명이 탐색했습니다.

Create Procedure 문을 사용하여 MySQL에서 저장된 프로 시저를 어떻게 작성합니까?

MySQL에서 저장된 프로 시저를 만들려면 CREATE PROCEDURE 문을 사용합니다. 다음은 다음 방법에 대한 단계별 안내서입니다.

  1. CREATE PROCEDURE STARTER : CREATE PROCEDURE 및 프로 시저 이름으로 시작하십시오.
  2. 매개 변수 정의 (있는 경우) : 프로 시저에 입력 매개 변수가 필요한 경우 프로 시저 이름 바로 다음 괄호 안에 정의하십시오. 매개 변수는 IN , OUT 또는 INOUT 과 같은 모드를 가질 수 있으며 각 매개 변수에는 데이터 유형이 필요합니다.
  3. 절차 본문 정의 : 절차 본문은 BEGINEND 블록으로 둘러싸여 있습니다. 이 블록 내에 절차가 실행되는 SQL 문을 작성합니다.
  4. 진술 종료 : 기본적으로 MySQL은 세미콜론 ( ; )을 명세서 터미네이터로 사용합니다. 그러나 저장된 절차를 만들 때 절차 본문에 사용 된 세미콜론과의 충돌을 피하기 위해이 구분기를 일시적으로 변경해야합니다. 일반적으로 // 또는 $$ 대체 구분 제로 사용됩니다.

간단한 저장 절차를 만드는 방법의 예는 다음과 같습니다.

 <code class="sql">DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT * FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
로그인 후 복사

이 예에서 GetEmployeeData employeeID 입력 매개 변수로 취하고 employees 테이블에서 해당 직원의 모든 데이터를 반환하는 절차입니다.

MySQL 저장 프로 시저에 어떤 매개 변수가 포함될 수 있습니까?

MySQL 저장 절차에는 다양한 유형 및 모드의 매개 변수가 포함될 수 있습니다. 매개 변수는 세 가지 모드로 분류 할 수 있습니다.

  1. 에서 : 이것은 기본 모드입니다. IN 매개 변수를 사용하면 값을 절차에 전달할 수 있습니다. 절차는이 값을 읽을 수 있지만 수정할 수는 없습니다.
  2. OUT : OUT 매개 변수를 사용하면 절차가 호출 환경에 값을 반환 할 수 있습니다. 프로 시저는 OUT 매개 변수의 값을 수정할 수 있으며 프로 시저 실행 후에 수정 된 값에 액세스 할 수 있습니다.
  3. Inout : INOUT 매개 변수는 IN and OUT 의 속성을 결합합니다. 값을 절차에 전달할 수 있으며 절차를 통해 값을 수정하고 호출 환경으로 반환 할 수 있습니다.

매개 변수에는 INT , VARCHAR , DATE 등과 같은 데이터 유형이있을 수 있으며,이를 선언 할 때 지정해야합니다. 다음은 세 가지 유형의 매개 변수가있는 저장 절차의 예입니다.

 <code class="sql">DELIMITER // CREATE PROCEDURE ProcessEmployeeData( IN empID INT, OUT empName VARCHAR(100), INOUT empSalary DECIMAL(10, 2) ) BEGIN SELECT first_name, last_name INTO empName FROM employees WHERE id = empID; UPDATE employees SET salary = empSalary 1000 WHERE id = empID; SELECT salary INTO empSalary FROM employees WHERE id = empID; END // DELIMITER ;</code>
로그인 후 복사

MySQL에서 기존 저장된 절차를 어떻게 수정할 수 있습니까?

MySQL에서 기존 저장 ALTER PROCEDURE 문을 사용합니다. 그러나 ALTER PROCEDURE 보안 컨텍스트 또는 SQL 보안과 같은 특성과 같은 절차의 특정 속성을 변경하는 것으로 제한됩니다. 절차 내에서 실제 코드 또는 논리를 수정하려면 DROP PROCEDURE 사용하고 CREATE PROCEDURE 해야합니다.

다음은 다음과 같은 방법입니다.

  1. 기존 절차를 삭제하십시오 .
 <code class="sql">DROP PROCEDURE IF EXISTS ProcedureName;</code>
로그인 후 복사
  1. 새로운 정의로 절차를 재현하십시오 .
 <code class="sql">DELIMITER // CREATE PROCEDURE ProcedureName( -- Parameters ) BEGIN -- New procedure body END // DELIMITER ;</code>
로그인 후 복사

예를 들어, GetEmployeeData 절차를 업데이트하여 직원의 첫 번째 및 성만 반환하려면 다음을 수행합니다.

 <code class="sql">DROP PROCEDURE IF EXISTS GetEmployeeData; DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT first_name, last_name FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
로그인 후 복사

데이터베이스 관리를 위해 MySQL에서 저장된 절차를 사용하면 어떤 이점이 있습니까?

저장 절차는 MySQL에서 데이터베이스 관리에 몇 가지 이점을 제공합니다.

  1. 개선 된 성능 : 저장 프로 시저가 데이터베이스에 컴파일되고 저장되어 개별 SQL 문을 실행하는 것과 비교하여 더 빠른 실행으로 이어질 수 있습니다. 또한 단일 통화 내에서 여러 작업을 수행하여 네트워크 트래픽을 줄일 수 있습니다.
  2. 코드 재사용 성 : 저장 프로 시저는 여러 응용 프로그램 및 스크립트에서 재사용 할 수있어 코드 복제를 줄이고 유지 보수를보다 쉽게 ​​할 수 있습니다.
  3. 보안 향상 : 저장된 절차 내에서 로직을 캡슐화하면 기본 테이블 및 데이터에 대한 액세스를 제어 할 수 있습니다. 사용자는 작동하는 테이블에 직접 액세스하지 않고 절차에 대한 실행 권한을 부여받을 수 있습니다.
  4. 단순화 된 유지 보수 : 비즈니스 로직에 대한 변경 사항은 여러 응용 프로그램 코드베이스가 아닌 한 곳 (저장 절차)에서 이루어질 수 있습니다. 이 중앙 집중화는 유지 보수를 단순화하고 일관성을 보장합니다.
  5. 트랜잭션 제어 : 저장된 절차는 트랜잭션을보다 효과적으로 관리하여 여러 운영에서 데이터 무결성과 일관성을 보장 할 수 있습니다.
  6. 개발 시간 감소 : 저장된 절차를 통해 개발자는 복잡한 SQL 쿼리를 반복적으로 작성하는 대신 고급 응용 프로그램 논리에 집중할 수 있습니다.
  7. 이식성 : 저장된 절차는 한 MySQL 서버에서 다른 MyQL 서버로 쉽게 이동할 수 있으며, 이는 데이터베이스가 자주 마이그레이션되거나 복제되는 환경에 유리합니다.

이러한 이점을 활용하여 저장된 절차는 MySQL에서 데이터베이스 관리의 효율성과 보안을 크게 향상시킬 수 있습니다.

위 내용은 Create Procedure 문을 사용하여 MySQL에서 저장된 프로 시저를 어떻게 작성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿