...
뷰(view)란?
- 뷰(view)는 데이터베이스에 존재하는 일종의 가상 테이블을 의미합니다.
- 이러한 뷰는 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않습니다.
create view 뷰명 as select문~
alter view 뷰명 as select문~ with check option
뷰를 호출하는 순간에 뷰 create문안에 써있는 select문이 실행되는 것입니다.
뷰의 특징
- 뷰를 update 가능은 합니다.
- 뷰를 insert하는 것은 조건이 있습니 다.
테이블의 모든 필드의 값을 넣어줘야하는데 일부만 넣어주게 되면 불가능. 그래서 넣으려면 전체를 다 넣거나 디폴트를 지정해줍니다. - 집계함수가 들어가느 뷰는 수정 불가능
- with check option을 주면 체크조건이 들어가게 됩니다.
뷰 장점
1. 특정 사용자에게 테이블 전체가 아닌 필요한 필드만을 보여줄 수 있습니다.
2. 복잡한 쿼리를 단순화해서 사용할 수 있습니다.
3. 쿼리를 재사용할 수 있습니다.
뷰 단점
1. 한 번 정의된 뷰는 변경할 수 없습니다.
2. 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가집니다.
3. 자신만의 인덱스를 가질 수 없습니다.
복합 뷰
- inner join한 select문~
- 데이터 입력 불가능
CREATE VIEW v_userbuyTbl AS
SELECT
U.userID,
U.name,
B.prodName,
U.addr,
CONCAT(U.mobile1, U.mobile2) AS mobile
FROM
userTbl U
INNER JOIN buyTbl B ON U.userID = B.userID;
뷰 생성
CREATE VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 조건
뷰의 이름을 명시하고, AS 키워드 다음에 SELECT 문을 사용하여 해당 뷰가 접근할 수 있는 필드를 명시합니다.
이때 WHERE 절을 사용하여 특정 조건을 설정할 수도 있습니다.
이렇게 CREATE VIEW 문은 SELECT 문에서 선택된 필드를 가지는 새로운 뷰를 생성합니다.
뷰는 원본 테이블과 같은 이름을 가질 수 없습니다.
※ join한 테이블을 뷰를 생성할 때 필드명이 겹치면 안됨
뷰 대체
CREATE 문에 OR REPLACE 절을 추가하여 기존에 존재하는 뷰를 새로운 뷰로 대체할 수 있습니다.
CREATE OR REPLACE VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 조건
CREATE OR REPLACE VIEW 문은 OR REPLACE 절이 추가된 것을 제외하면, 뷰를 생성하는 문법과 완전히 같습니다.
이때 해당 뷰가 존재하지 않으면 CREATE VIEW 문과 같은 결과를 반환합니다.
뷰 수정
ALTER VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
뷰 삭제
DROP VIEW 뷰이름
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.