본문 바로가기
MariaDB

MariaDB#15 : 뷰View (221229)8

by haheehee 2022. 12. 29.

뷰 (view)

- 사용자 입장에서는 테이블과 동일

- 생성하면, 테이블이라 생각하고 사용하면 된다. 

USE 데이터베이스명;

CREATE VIEW 뷰이름
AS
	SELECT 필드1, 필드2, 필드3, ...  FROM 가져올테이블;
SELECT * FROM 뷰이름;

- 뷰는 읽기 전용이다.

- 뷰를 사용하여 기존의 테이블의 데이터 수정 가능

- 사용자가 뷰를 조회(또는 변경-> SELECT문으로)

   뷰는 테이블에게 쿼리를 실행시켜 데이터를 조회(또는 변경)

   테이블은 쿼리문을 통한 결과값을 뷰로 리턴해준다.

   뷰는 결가값을 사용자에게 전달

- VIEW는 보안에 좋음. (간단한 작업을 뷰를 통해 하므로, 중요한 데이터는 열람할 수 없어 안전)

- 복잡한 쿼리가 단순해진다. (쿼리 단순화) 

 

 


트리거 (Trigger)

- trigger는 테이블에 사건이 일어나면 자동으로 실행된다.

- 테이블에 삽입, 수정, 삭제(DML문)와 같은 이벤트가 발생했을 때, 자동으로 실행되는 데이터베이스 개체

CREATE [OR REPLACE]
	[DEFINER = P user | CURRENT_USER | role | CURRENT_ROLE }]
    TRIGGER [IF NOT EXISTS] 트리거이름 트리거시간 트리거이벤트 
    ON 테이블명 FOR EACH ROW
    [{ FOLLOWS | PRECEDES } 다른트리거이름 ]
    trigger_stmt

- 트리거시간 : { BEFORE | AFTER }\

             AFTER 트리거와 BEFORE 트리거가 있다. 이벤트(INSERT, UPDATE, DELETE) 전/후에 작동

- 트리거이벤트 : { INSERT | UPDATE | DELETE }

 

- 예를 들어, 어떤 테이블의 행이 삭제되었을 때, 그 순간 데이터와 삭제된 시간, 삭제한 user 등을 새로운 테이블에 기록해준다. 추후, 새로운 테이블을 확인할 수 있다. 

- 제약 조건과 더불어 데이터의 무결성을 위한 기능

- 테이블에 Attach되는 프로그램 코드이다. 

- 스토어드 프로시저와 사용 방법(문법)이 비슷

- 트리거가 attach 된 테이블에 사건이 발생하면 자동으로 부착된 trigger가 실행된다.

 

- 트리거가 실행되면서, 임시테이블이 생성된다. OLD와 NEW가 있음

               INSERT의 경우 NEW 테이블을 생성시켜 새로운 값을 저장해준다.

               DELETE의 경우, OLD테이블을 생성시켜 이전값을 저장

               UPDATE는 NEW, OLD 테이블 모두 사용

댓글