프로시저 작성법

doohyunlm·2023년 7월 13일
4

DB

목록 보기
5/6
post-thumbnail

목차

프로시저란?
프로시저 작성법
마치며


  • SQL을 사용하다 보면 프로시저를 사용할 경우가 생깁니다.

  • 자주 쓰이는 복잡한 쿼리문이라든지 속도가 중요한 쿼리문은 프로시저로 작성하는 게 더 효율적입니다.

  • 프로시저는 무엇이고 왜 사용하는지 그리고 작성법에 대해 알아보겠습니다.



프로시저란?


  • 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것으로 영구저장모듈(Persistent Storage Module)이라고도 불립니다.
  • 보통 저장 프로시저를 프로시저라고 부르며, 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합입니다.



프로시저 작성법


생성

CREATE PROCEDURE [스키마명].[프로시저명]
	@변수 타입
	-- ex @name varchar(5)
AS
BEGIN
	SET NOCOUNT ON;
    -- NOCOUNT는 성능을 잡아먹기 때문에 꺼주시는 게 좋습니다.
	 
	SELECT * 
    FROM [DB명].[스키마명].[테이블명]
END
  • 이것이 프로시저 작성할때 기본이 되는 뼈대입니다.

  • CREATE PROCEDURE를 통해 어느 스키마에 어느 프로시저 명으로 생성을 할 것인지 작성합니다.

  • 변수들을 선언해서 반응형으로 만들 수도 있습니다.

  • 그 후 원하시는 식을 써서 사용하시면 됩니다.

  • 캐시 기능이 있기 때문에 다음 번 실행할 때 더 빠르게 실행될 수 있기에 복잡한 쿼리나 자주 사용해야하는 쿼리들을 프로시저로 작성하면 좋습니다.

수정

ALTER PROCEDURE [스키마명].[프로시저명]
	@변수 타입
	-- ex @name varchar(5)
AS
BEGIN
	SET NOCOUNT ON;
    -- NOCOUNT는 성능을 잡아먹기 때문에 꺼주시는 게 좋습니다.
	 
	SELECT * 
    FROM [DB명].[스키마명].[테이블명]
END
  • 수정의 경우도 동일하며 ALTER PROCEDURE로 원하는 프로시저 명을 쓰고 수정하면 됩니다.

삭제

DROP PROCEDURE [스키마명].[프로시저명]
  • 삭제도 간단하게 위 명령어로 실행합니다.

호출

변수없는 호출

exec [스키마명].[프로시저명]
  • exec는 리눅스의 실행 명령어지만 sql에서 프로시저를 호출할때 사용합니다.

  • 변수가 없을 시에는 바로 이렇게 명령어만 실행하면 실행됩니다.

변수가 있는 호출

exec [스키마명].[프로시저명] 'name',3,5
  • 변수가 있을 시에는 위에처럼 변수 위치와 선언한 타입에 맞춰서 써주시면 실행이 됩니다.



마치며

  • 간단하게 프로시저를 어떤 식으로 생성하고 수정하고 호출하는지 알아봤습니다.

  • 틀린 점이 있다면 말씀해주시면 감사하겠습니다.

profile
백엔드 개발자

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

유익해요

1개의 답글