뷰(VIEW)
뷰는 데이터베이스 객체중 하나로 테이블 처럼 데이터를 가지고 있지 않다. 뷰는 SELECT문으로 만들어져 있기 때문에 뷰에 접근하는 순간 바로 SELECT문이 실행된다.
뷰는 단순 뷰와 복합 뷰로 나뉜다.
- 단순 뷰 : 하나의 테이블
- 복합 뷰 : 두 개 이상의 테이블(JOIN)
뷰의 기본 생성
DB, 테이블을 생성하는 방법과 비슷하게 생성할 수 있다. AS절 다음에 SELECT문을 작성한다.
CREATE VIEW 뷰_이름
AS
SELECT * FROM 테이블;
SELECT * FROM 뷰_이름;
뷰 덮어씌우기
기존에 생성된 뷰를 덮어씌우는 데 사용된다.
CREATE OR REPLACE VIEW 뷰_이름
AS
SELECT 컬럼1, 컬럼2 FROM 테이블;
뷰를 사용하는 이유
보안에 도움이 된다. 사용자에게 보여줄 필요가 없는 중요한 정보(PK, 개인정보)는 빼고
필요한 정보만 보여줄 수 있다.
백틱
별칭을 사용할 때 중간에 띄어쓰기나 특수문자가 포함된 경우 따옴표가 아닌 (`) 백틱으로 묶어줘야 한다.
CREATE VIEW 뷰_이름
AS
SELECT member AS `member column` FROM 테이블;
뷰의 수정
ALTER VIEW 구문을 사용해 뷰를 수정할 수 있다.
ALTER VIEW v_viewtest1
AS
SELECT B.mem_id AS '회원 아이디', M.mem_name AS '회원 이름', B.prod_name AS '제품 이름',
CONCAT(M.phone1, M.phone2) AS '연락처'
FROM buy B
INNER JOIN member M
ON B.mem_id = M.mem_id;
SELECT DISTINCT `회원 아이디`, `회원 이름` FROM v_viewtest1; ==> 백틱 사용
뷰의 삭제
DROP VIEW 구문을 사용해 뷰를 삭제할 수 있다.
DROP VIEW 뷰_이름;
뷰의 정보 확인
DISCRIBE / DESC 문으로 기존 뷰의 정보를 확인할 수 있다.
* PK와 같은 정보는 확인되지 않는다.
DESCRIBE 뷰_이름;
SHOW CREATE VIEW 문으로 뷰의 소스 코드를 확인할 수 있다.
SHOW CREATE VIEW 뷰_이름;
뷰를 통한 데이터의 수정/삭제
일반적으로 뷰를 통해 데이터를 수정, 삭제하는 것은 테이블의 정보를 확인할 수 없기 때문에 힘들다.
뷰를 통해 데이터를 수정, 삭제하는 경우 해당 데이터가 없거나 제약조건에 의해 문제가 발생해도 오류코드가 발생하지 않는다.
뷰를 통한 데이터의 입력
뷰를 통해 데이터를 입력할 때 해당 컬럼의 제약 조건에 맞지 않는다면 입력 완료 코드가 확인되어도 SELECT로 확인했을 때 테이블에서 확인되지 않는다.
테이블의 컬럼과 동일한 제약 조건을 뷰에서 지정해주면 잘못된 데이터를 뷰를 통해 입력했을 때 오류 코드가 출력된다.
WITH CHECK OPTION 예약어를 사용하여 제약 조건을 추가할 수 있다.
ALTER VIEW 뷰_이름
AS
SELECT * FROM member WHERE height >=167
WITH CHECK OPTION;
'SQL' 카테고리의 다른 글
SQL - 프로그래밍 (0) | 2024.11.08 |
---|---|
SQL - 제약조건 (1) | 2024.11.07 |
SQL - JOIN (0) | 2024.11.07 |
SQL - 데이터의 형식 (0) | 2024.11.06 |
SQL - 기본 문법(데이터 변경) (0) | 2024.11.06 |