SQL에서 저장 프로시저와 함수는 데이터베이스에서 코드를 재사용하고 작업을 단순화하는 데 사용됩니다. 이들은 데이터베이스 시스템에 의해 실행되며 비슷한 기능을 하지만 몇 가지 중요한 차이점이 있습니다.
1. 저장 프로시저
저장 프로시저는 일련의 SQL 문을 포함하는 이름 있는 저장된 컴파일된 프로그램 단위입니다. 일반적으로 데이터베이스에서 서버 측에서 실행되며 데이터 처리 작업에 사용됩니다. 저장 프로시저를 사용하면 네트워크 트래픽을 줄이고 실행 속도를 높일 수 있습니다.
저장 프로시저는 종종 입력 매개변수를 받아들이고 결과를 반환합니다. 또한 여러 SQL 문을 포함하여 복잡한 비즈니스 로직을 처리할 수 있습니다.
CREATE PROCEDURE sp_GetCustomerName
@customerId INT
AS
BEGIN
SELECT name FROM Customers WHERE id = @customerId;
END
2. 함수
함수는 SQL 문을 그룹화하여 특정 작업을 수행하고 결과를 반환하는 데 사용됩니다. 함수는 특정한 값을 기준으로 값을 계산하거나 검색하는 데 유용합니다.
SQL에서는 스칼라 함수와 테이블 함수 두 가지 유형의 함수가 있습니다. 스칼라 함수는 하나의 결과를 반환하고 테이블 함수는 결과 집합을 반환합니다.
CREATE FUNCTION fn_CalculateDiscount
(@totalAmount DECIMAL)
RETURNS DECIMAL
AS
BEGIN
DECLARE @discount DECIMAL;
IF @totalAmount > 1000
SET @discount = @totalAmount * 0.1;
ELSE
SET @discount = 0;
RETURN @discount;
END
3. 저장 프로시저와 함수의 차이
저장 프로시저와 함수의 가장 큰 차이점 중 하나는 저장 프로시저는 값을 반환할 수는 없지만 함수는 반환할 수 있다는 것입니다. 또한 저장 프로시저는 SELECT, INSERT, UPDATE 및 DELETE와 같은 작업을 수행할 수 있지만, 함수는 데이터를 조회하고 계산하는 데 사용됩니다.
결론
저장 프로시저와 함수는 데이터베이스 개발에서 필수적인 도구로, 코드의 재사용성을 높이고 데이터 처리를 효율적으로 수행하는 데 도움이 됩니다. 적절한 상황에 맞게 저장 프로시저와 함수를 사용하여 데이터베이스 작업을 단순화하고 최적화할 수 있습니다.
참고 문헌:
- https://www.sqlshack.com/overview-of-sql-server-stored-procedures/
- https://www.sqlshack.com/overview-of-t-sql-functions-in-sql-server/
SQL 저장 프로시저와 함수 차이 SQL 함수의 사용 예