Heestory

13.뷰/함수/프로시저/트리거 본문

개발(~국비)/기술면접

13.뷰/함수/프로시저/트리거

까만밀가루 2022. 10. 20. 11:16

1) 뷰(view)

* 개념

- 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

- 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다.

- 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다.

- 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화한다.

* 문법

CREATE VIEW 뷰이름[(속성이름[,속성이름])]AS SELECT문;

 

 

2) 사용자 정의함수(User-Defined Function)

* 개념

절차형 SQL을 사용하여 일련의 SQL 처리를 수행한다. 프로시저와 사용법이 동일하다. 하지만 수행 결과를 단일 값으로 반환한다는 특징이 있다.

* 문법

CREATE FUNCTION 함수명

(파라미터_명 MODE 데이터_타입)

IS

RETURN 데이터_타입

변수 선언

 

CREATE OR REPLACE FUNCTION 함수명

(파라미터_명 MODE 데이터_타입)

AS

RETURN 데이터_타입

변수 선언

 

 

3) 프로시저(Procedural Language)

* 개념

일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 자주 사용되는 SQL문을 DB 객체로 생성하여 저장한 후 필요시에 프로시저명을 호출해서 사용할 수 있다.

* 문법

CREATE OR REPLACE PROCEURE "원하는 프로시저이름" ( // 프로시저 생성

"파라미터 이름" [IN\OUT\INOUT 중에 선택] "데이터 타입", ...)

IS

변수선언

BEGIN //프로시저 시작

명령어;

[COMMIT\ROLLBACK]

END; // 프로시저 끝

 

 

4) 트리거

* 개념

트리거는 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때 관련 작업이 자동으로 수행되게 하는 절차형 SQL이다. 사용자가 직접 호출하는 것이 아닌 DBMS에서 자동적으로 호출하는 것이 특징이다.

* 문법

CREATE OR REPLACE TRIGGER "원하는 트리거 이름"

[BEFORE/AFTER 선택] 삽입,삭제,갱신(INSERT, DELETE, UPDATE) ON 테이블명

[FOR EACH ROW] // 행 트리거, 명령문 트리거라면 생략가능

BEGIN

END;