[SQL] 프로시저/함수 정의, 사용 예제
2023. 12. 7. 11:23ㆍSQL
프로시저
DBMS에서 제공하는 프로그래밍 기능으로 개발을 하다보면 여러 개의 칼럼을 조회하거나 여러 테이블에서 데이터 추출을 할 때 하나의 쿼리문으로 생성하면 가독성이 떨어지게 됩니다.
이를 해결하기 위해서 DB에 일련의 작업을 메서드 형식으로 저장하며 이를 프로시저라고 합니다.
프로시저는 어떤 동작을 일괄적으로 처리하는 용도로 사용되며 한번의 요청으로 여러 SQL문을 실행시킬 수 있기 때문에 네트워크 부하를 줄일 수 있습니다.
함수
함수는 여러 작업을 위한 기능으로 보통 로직을 도와주는 역할을 하며 계산, 수치 등을 나타낼 때 사용한다.
프로시저의 리턴값은 필수가 아니고 여러개의 리턴값을 가질 수 있는 반면 함수는 반드시 하나의 리턴값을 반드시 가져야 합니다.
함수는 프로시저를 포함하고 있는 개념으로 프로시저를 포함한 함수들을 모아 프로그램을 구성하는 것을 절차지향적 프로그래밍이라고 합니다.
프로시저 생성 구문
CREATE PROCEDURE [프로시저명](파라미터)
AS
BEGIN
[쿼리문]
END
프로시저 예문
CREATE PROCEDURE IS_COWORKER (
@NAME NVARCHAR(50),
@POSITION NVARCHAR(50),
@JOIN_DATE DATETIME,
@RETURN_CODE VARCHAR(1) OUTPUT
)
AS
BEGIN
SET NOCOUNT ON -- 결과 적용된 행의 개수를 표시하지 않도록하는 옵션(서버 부하 감소)
BEGIN TRY
BEGIN TRAN --트랜젝션 시작
INSERT INTO TBL_EMP ( NAME, POSITION, JOIN_DATE )
VALUES (@NAME, @POSITION, @JOIN_DATE )
COMMIT TRAN -- 커밋
SET @RETURN_CODE = 'S'
END TRY
BEGIN CATCH
ROLLBACK TRAN --롤백
SET @RETURN_CODE = 'E'
END CATCH
프로시저 실행 구문
EXEC [프로시저명][파라미터]
프로시저 실행 예문
EXEC TBL_EMP '박정욱', '책임', '2022-02-01'
'SQL' 카테고리의 다른 글
[DB]Database(DB),DBMS, SQL 이해와 종류 (1) | 2023.11.20 |
---|