반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

SQL/MYSQL

[MYSQL] 스토어드 프로시저 사용 방법

2023. 6. 15. 18:10
728x90
반응형

MySQL 스토어드 프로시저는 SQL 문과 프로그래밍 요소를 결합한 데이터베이스 객체입니다. 

스토어드 프로시저는 여러 개의 SQL 문을 그룹화하고, 파라미터를 사용하여 입력 값을 전달하고, 결과를 반환하는 등의 작업을 수행할 수 있습니다. 

이를 통해 코드의 재사용성을 높이고, 보안성을 강화하며, 데이터베이스 성능을 향상시킬 수 있습니다.

다음은 MySQL 스토어드 프로시저에 대한 자세한 설명과 예시입니다:

1. 스토어드 프로시저의 구조:
   - 스토어드 프로시저는 `CREATE PROCEDURE` 문으로 생성됩니다. 

     프로시저는 이름, 파라미터, 변수, SQL 문, 제어 구문 등으로 구성됩니다.
   - 프로시저는 `BEGIN`과 `END` 블록으로 감싸진 SQL 문의 집합입니다. 

     `BEGIN` 블록에서 변수를 선언하고 초기화하며, `END` 블록에서 결과를 반환하거나 필요한 작업을 수행합니다.

2. 파라미터와 변수:
   - 스토어드 프로시저는 입력 파라미터와 출력 파라미터를 가질 수 있습니다. 

     파라미터는 프로시저에 전달되는 값이나 결과로 사용됩니다.
   - 프로시저 내에서 사용되는 변수는 `DECLARE` 문을 사용하여 선언됩니다. 

     변수는 프로시저 실행 중에 값을 저장하고 조작하는 데 사용됩니다.

3. SQL 문과 제어 구문:
   - 스토어드 프로시저 내에서 다양한 SQL 문을 사용할 수 있습니다. 

     SELECT, INSERT, UPDATE, DELETE 등의 SQL 문을 사용하여 데이터베이스 작업을 수행할 수 있습니다.
   - 제어 구문인 IF, WHILE, LOOP 등을 사용하여 조건부 논리와 반복 작업을 수행할 수 있습니다.

4. 예시:
   - 다음은 주문 테이블에서 특정 고객의 주문 내역을 조회하는 스토어드 프로시저의 예시입니다:

DELIMITER //

CREATE PROCEDURE GetCustomerOrders(IN customerId INT)
BEGIN
    DECLARE totalOrders INT;
    DECLARE customerName VARCHAR(100);

    SELECT COUNT(*) INTO totalOrders FROM orders WHERE customer_id = customerId;

    IF totalOrders > 0 THEN
        SELECT name INTO customerName FROM customers WHERE id = customerId;
        SELECT * FROM orders WHERE customer_id = customerId;
    ELSE
        SELECT 'No orders found for the customer.';
    END IF;
END //

DELIMITER ;


위의 예시에서는 `GetCustomerOrders`라는 스토어드 프로시저를 생성합니다. 

이 프로시저는 `customerId`라는 입력 파라미터를 받아 해당 고객의 주문 내역을 조회합니다. 

`totalOrders` 변수를 사용하여 주문 수를 계산하고, `customerName` 변수를 사용하여 고객 이름을 조회합니다. 

IF 문을 사용하여 주문이 있는 경우 해당 주문 내역을 조회하고, 주문이 없는 경우 메시지를 반환합니다.

스토어드 프로시저는 데이터베이스 로직을 단일 객체로 추상화하여 유지 관리 및 재사용이 용이하게 해주는 강력한 도구입니다. 

복잡한 데이터베이스 작업이 필요한 경우 스토어드 프로시저를 사용하여 효율적이고 일관된 코드를 작성할 수 있습니다.

728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MYSQL] 전체 텍스트 검색 방법  (0) 2023.06.19
[MYSQL] 트리거 사용 방법  (0) 2023.06.15
[MYSQL] 커서 사용 방법  (0) 2023.06.15
[MYSQL] 스토어드 함수 사용 방법  (0) 2023.06.15
[MYSQL] 인덱스가 필요한 경우와 필요 없는 경우  (0) 2023.06.15
[MYSQL] 인덱스의 성능 비교하기  (0) 2023.06.15
[MYSQL] 인덱스 생성, 변경, 삭제 방법  (0) 2023.06.13
[MYSQL] 인덱스의 내부 작동에 대한 설명  (0) 2023.06.13
    'SQL/MYSQL' 카테고리의 다른 글
    • [MYSQL] 커서 사용 방법
    • [MYSQL] 스토어드 함수 사용 방법
    • [MYSQL] 인덱스가 필요한 경우와 필요 없는 경우
    • [MYSQL] 인덱스의 성능 비교하기
    Ant_U
    Ant_U

    티스토리툴바