기록이 힘이다.

[혼공 SQL] 가상의 테이블: 뷰 본문

SQL

[혼공 SQL] 가상의 테이블: 뷰

dev22 2022. 12. 14. 10:59
728x90

뷰는 데이터베이스 개체 중에 하나입니다. '가상의 테이블'

 

뷰는 단순 뷰와 복합 뷰로 나뉘는데, 단순 뷰는 하나의 테이블과 연관된 뷰를 말하고, 복합 뷰는 2개 이상의 테이블과 연관된 뷰를 말합니다.

 

뷰의 개념

 

뷰의 기본 생성

CREATE VIEW 뷰_이름
AS
   SELECT 문;

SELECT 열_이름 FROM 뷰_이름
   [WHERE 조건];

뷰를 만든 후에 뷰에 접근하는 방식은 테이블과 동일하게 SELECT 문을 사용합니다. 전체에 접근할 수도 있고, 필요하면 조건식도 테이블과 동일하게 사용할 수 있습니다.

뷰를 사용하는 이유

 

보안(security)에 도움이 됩니다.

앞의 예에서 만든 v_member 뷰에는 사용자의 아이디, 이름, 주소만 있을 분 사용자의 중요한 개인 정보인 연락처, 평균 키, 데뷔 일자 등의 정보는 들어 있지 않습니다.

복잡한 SQL을 단순하게 만들 수 있습니다.

뷰의 실제 작동

뷰의 단순한 형태에 대해 살펴보았는데, 실무에서는 좀 더 복잡하게 사용합니다. 실제로 사용하는 방법을 익혀보겠습니다.

 

뷰의 실제 생성, 수정, 삭제

기본적인 뷰를 생성하면서 뷰에서 사용될 열 이름을 테이블과 다르게 지정할 수도 있습니다. 별칭 AS를 사용.

단, 뷰를 조회할 때는 열 이름에 공백이 있으면 백틱(`)으로 묶어줘야 합니다. 한글도 가능합니다.

 

 

생성 CREATE 개체_종류/ CREATE VIEW

수정 ALTER 개체_종류/ ALTER VIEW

삭제 DROP 개체_종류/ DROP PROCEDURE

 

뷰의 정보 확인

뷰를 통한 데이터의 수정/삭제

뷰를 통해서 데이터를 입력하려면, 뷰에서 보이지 않는 테이블의 열에 NOT  NULL이 없어야 합니다.

 

뷰를 통한 데이터의 입력

예약어 WITH CHECK OPTION을 통해 뷰에 설정된 값의 범위가 벗어나는 값은 입력되지 않도록 할 수 있습니다.

키가 167 미만인 데이터는 입력되지 않고, 167 이상의 데이터만 입력됩니다. 이러한 방식이 좀 더 합리적 입니다.

뷰가 참조하는 테이블의 삭제

바람직하지는 않지만, 관련 뷰가 있더라도 테이블은 쉽게 삭제됩니다.

뷰가 조회되지 않으면 CHECK TABLE 문으로 뷰의 상태를 확인해볼 수 있습니다.