뷰 (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 테이블 모두 사용
'MariaDB' 카테고리의 다른 글
MariaDB#11 : 조인 join(내부, 외부), 스토어드 프로시저 (221229)7 (0) | 2022.12.29 |
---|---|
MariaDB#10 : 데이터형, 형변환, 내장함수, 변수, 테이블, SQL(221229)7 (0) | 2022.12.29 |
MariaDB#9 : SQL - DDL, DML, DCL(221228)6 (0) | 2022.12.28 |
MariaDB#8 : HeidiSQL 살펴보기, 주석(221228)5 (0) | 2022.12.28 |
MariaDB#7 : 모델링 (221228)4 (0) | 2022.12.28 |
댓글