본문 바로가기
코딩 공부/web & Java

[SQL] View

by 현장 2022. 9. 23.

View

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

 

뷰 테이블

작동 방식

 

특징

1. 기본테이블로부터 유도된 테이블이기에 테이블과 같은 형태의 구조이며 조작도 테이블과 거의 같다.

2. 가상 테이블이기에 데이터의 논리적 독립성을 제공한다.

3. 뷰를 통해서만 데이터를 접근하여 뷰에 나타나지 않는 데이터 보안에 도움된다.

4. 필요한 데이터만 뷰로 정의해서 처리하기에 관리가 용이하고 명령문이 간단하다.

 

단점

1. 가상 테이블이기에 데이터의 논리적 독립성을 제공한다.

2. ALTER VIEW문을 사용할 수 없다. (뷰의 정의를 변경할 수 없다.)

3. 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.

 

MySQL 뷰의 제약사항

  • 뷰의 정의는 select 구문이 허용하는 where, group by 와 같은 것을 모두 포함 가능하다.
  • TEMPORARY 뷰를 만들 수 없다.
  • 뷰 정의에 있는 SELECT 구문은 다음과 같은 구성을 포함할 수 없다
    FROM 절 안에 서브쿼리
    TEMPORARY 테이블로 참조
    사용자 변수로 참조
     

뷰 생성

CREATE VIEW v_sleeper_member
AS
	SELECT
		m.m_id,
		m.m_email
	FROM
		tb_member AS m
		LEFT JOIN 
		tb_login AS l
		ON
		m.m_id = l.login_id
	WHERE
		l.login_num IS NULL;

뷰 조회

SELECT
	v.m_id,
	v.m_email
FROM
	v_sleeper_member AS v;

뷰 삭제

DROP VIEW order_history;