본문 바로가기
Data/DB

[MySQL] View 란? | LIM

by forestlim 2022. 12. 10.
728x90
반응형

✔️ [View 란]

데이터베이스에 존재하는 일종의 가상 테이블이라고 보면 된다. 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지는 않다.

뷰에서는 다른 테이블이나 다른 뷰에 저장되어 있는 데이터를 보여주는 역할만을 수행하게 된다. 그래서 이름도 뷰(View) 인 것 같다.

View 를 생성하는 SQL 문만 저장한다고 생각하면 될 것 같다. 

 

✔️ [With 와의 차이]

With 와 비슷하다고 생각할 수 있을 것 같은데, With 는 쿼리문이 실행될 때 임시로 사용하는 테이블이고, View 는 데이터셋에 저장해서 여러 사람이 활용할 수 있다.

 

💡 View 의 사용 목적은 복잡한 쿼리문을 계속 조회할 때, 테이블처럼 관리되면 편하기 때문이라고 생각한다.

 

[다른 테이블에 변경사항이 일어났을 때 View 테이블에 실시간으로 반영이 되는가]

❌: 변경사항이 일어났을 때 바로 반영이 되는 것이 아니다.

⭕️: 다른 테이블에 변경사항이 생기고 Select 에서 데이터를 조회할 때 다른 테이블로 뷰를 다시 생성하면서 업데이트가 되는 것이다.

 

 

🧐 [뷰의 장점과 단점은]

pros)

1. 테이블 전체가 아닌 필요한 필드 또는 원하는 조건에 데이터만 보여줄 수 있다.

2. 쿼리를 재사용할 수 있다. 

 

cons)

1. 뷰는 한 번 정의되면 변경이 불가능하다.

2. 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가진다.

3. 자신만의 인덱스를 가질 수 없다. 

 

✔️ [뷰 테이블 생성 및 조회 시 동작 과정]

1) 뷰 생성하기

CREATE VIEW [view_name] AS
SELECT [field_name_1], [field_name_2], ... 
FROM [table_name]
WHERE [condition];

 

1-1) 여러 테이블을 이용하여 뷰를 생성하는 경우

CREATE VIEW [view_name] AS
SELECT a.[field_name_1], b.[field_name_2]
FROM [table_name_1] AS a, [table_name_2] AS b
WHERE [condition];

 

2) 뷰 사용

SELECT * FROM [view_name];

 

3) 뷰 삭제

DROP VIEW [view_name]
728x90
반응형

댓글