반응형
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:15
728x90
반응형

MySQL 스토어드 함수는 입력 값을 받아 처리하고, 결과를 반환하는 데이터베이스 객체입니다. 

스토어드 함수는 SQL 문과 프로그래밍 요소를 결합하여 데이터베이스 작업을 수행하며, 쿼리에서 함수처럼 사용할 수 있습니다. 

스토어드 함수를 사용하면 데이터베이스 로직을 캡슐화하고, 코드의 재사용성을 높일 수 있습니다.

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

1. 스토어드 함수의 구조:
   - 스토어드 함수는 `CREATE FUNCTION` 문으로 생성됩니다. 

     함수는 이름, 파라미터, 반환 타입, SQL 문 등으로 구성됩니다.
   - 함수는 SQL 문을 사용하여 데이터베이스 작업을 수행하고, 결과를 반환합니다.

2. 파라미터와 반환 값:
   - 스토어드 함수는 입력 파라미터와 반환 값의 타입을 가집니다. 

     파라미터는 함수에 전달되는 값이며, 반환 값은 함수의 실행 결과입니다.
   - 함수 내에서 사용되는 파라미터는 입력 값을 처리하고 결과를 반환하는 데 사용됩니다.

3. SQL 문:
   - 스토어드 함수 내에서 다양한 SQL 문을 사용할 수 있습니다. 

     SELECT, INSERT, UPDATE, DELETE 등의 SQL 문을 사용하여 데이터베이스 작업을 수행할 수 있습니다.
   - 함수는 SQL 문을 사용하여 데이터를 쿼리하거나 조작하고, 그 결과를 반환합니다.

4. 예시:
   - 다음은 주문 테이블에서 특정 고객의 총 주문 금액을 계산하는 스토어드 함수의 예시입니다:

DELIMITER //

CREATE FUNCTION GetTotalOrderAmount(customerId INT) RETURNS DECIMAL(10, 2)
BEGIN
    DECLARE totalAmount DECIMAL(10, 2);

    SELECT SUM(order_amount) INTO totalAmount FROM orders WHERE customer_id = customerId;

    RETURN totalAmount;
END //

DELIMITER ;


위의 예시에서는 `GetTotalOrderAmount`라는 스토어드 함수를 생성합니다. 

이 함수는 `customerId`라는 파라미터를 받아 해당 고객의 총 주문 금액을 계산하여 반환합니다. 

`totalAmount` 변수를 사용하여 주문 금액의 합계를 계산하고, `RETURN` 문을 사용하여 결과 값을 반환합니다.

스토어드 함수를 사용하면 데이터베이스 로직을 함수로 캡슐화하여 유지 관리 및 재사용이 용이하게 할 수 있습니다. 

쿼리에서 함수를 호출하여 데이터베이스 작업을 수행하고, 함수의 반환 값을 활용할 수 있습니다. 

스토어드 함수를 잘 활용하면 데이터베이스 작업을 더 효율적으로 처리할 수 있습니다.

728x90
반응형

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

[MYSQL] 파티션  (0) 2023.06.27
[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
    'SQL/MYSQL' 카테고리의 다른 글
    • [MYSQL] 트리거 사용 방법
    • [MYSQL] 커서 사용 방법
    • [MYSQL] 스토어드 프로시저 사용 방법
    • [MYSQL] 인덱스가 필요한 경우와 필요 없는 경우
    Ant_U
    Ant_U

    티스토리툴바