728x90
반응형
뷰(VIEW)
데이터베이스에 존재하는 일종의 가상 테이블로, 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지는 않다.
즉 테이블처럼 물리적으로 저장되어 있는 것은 아니다. (자주 사용하는 뷰인 경우, 물리적으로 저장되도록 하는 기능도 있긴 있음)
뷰에서는 다른 테이블이나 다른 뷰에 저장되어 있는 데이터를 보여주는 역할만을 수행한다.
뷰의 장점
- 사용자에게 높은 편의성을 제공한다. (한번 저장해두면 계속 재활용할 수 있음)
- 데이터 수요에 알맞은 다양한 구조의 데이터 분석 기반을 구축할 수 있다. (기존의 테이블 구조를 건드리지 않음)
- 데이터 보안을 제공한다. (WHERE절로 특정 row들만 보여주는 뷰를 보여주는 등 특정 정보들만 보여준다. DBMS의 사용자별 권한 관리 기능을 통해 데이터 분석가가 테이블에 직접적인 접근을 하지 못하도록 막는다.
뷰의 단점
- 한번 정의된 뷰는 변경할 수 없다.
- 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가진다.
- 자신만의 인덱스를 가질 수 없다.
1) 뷰 생성
뷰는 원본 테이블과 같은 이름을 가질 수 없다. 테이블과 비슷한 이름의 뷰를 생성하는 것이 좋다.
-> 뷰 출력은 테이블 출력과 같음
CREATE VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 조건
CREATE VIEW three_tables_joined AS
SELECT i.id, i.name, AVG(star) AS avg_star, COUNT(*) AS count_star
FROM ITEM i LEFT JOIN REVIEW r
ON i.id=r.item_id
LEFT JOIN MEMBER m
ON m.id=r.mem_id
WHERE m.gender='f'
GROUP BY i.id, i.name
HAVING COUNT(*) >=2
ORDER BY AVG(star) DESC, COUNT(*) DESC;
2) 뷰 대체
CREATE OR REPLACE VIEW
CREATE OR REPLACE VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 조건
3) 뷰 수정 - ALTER
ALTER VIEW 뷰이름 AS
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
4) 뷰 삭제 - DROP
DROP VIEW 뷰이름
728x90
반응형
'Data > MySQL' 카테고리의 다른 글
[MySQL] 스토어드 프로시저(Stored Procedure) 사용법 (0) | 2021.01.07 |
---|---|
[MySQL] 컬럼추가, 컬럼의 이름 변경, 컬럼삭제, 컬럼의 데이터타입 변경 (0) | 2021.01.06 |
[MySQL] 서브쿼리(SubQuery) - 외부쿼리, 내부쿼리 (0) | 2021.01.05 |
[MySQL] 결합 연산과 집합 연산 - UNION, UNION ALL (0) | 2021.01.05 |
[MySQL] PRIMARY KEY, FOREIGN KEY 설정하는 다양한 방법 (0) | 2021.01.04 |