1인칭 학습 시점_웹개발/SQL
[SQL] SQL VIEW(뷰) 개념 정리와 실습 예제
awesong
2024. 6. 28. 17:53
728x90
반응형
데이터베이스를 다루다 보면 복잡한 SELECT문을 반복적으로 사용할 때, 이를 더 간단하게 처리할 수 있는 방법이 필요합니다.
이럴 때 사용하는 것이 바로 VIEW(뷰)입니다. 이번 글에서는 뷰(View)의 개념과 특징, 그리고 생성 및 삭제 방법에 대해 정리하겠습니다.
1. VIEW(가상 테이블)란?
VIEW는 하나 이상의 테이블이나 또 다른 뷰에서 유도된 결과 집합을 저장한 가상의 테이블입니다.
기존 테이블을 직접 수정하거나 복사하는 것이 아니라, 저장된 SELECT문을 통해 실행 시점에 동적으로 데이터를 보여주는 구조입니다.
VIEW의 특징
- 데이터를 직접 저장하지 않음
→ 뷰는 쿼리만 저장하며, 실제 데이터는 원본 테이블에 존재합니다. - 복잡한 쿼리를 단순화 가능
→ 여러 테이블을 조인한 복잡한 SELECT문을 뷰로 만들면, 간단한 SELECT로 동일한 결과를 얻을 수 있습니다. - 보안성 향상
→ 민감한 정보가 담긴 테이블에서 특정 열만 선택해 뷰를 만들면, 사용자는 필요한 정보만 조회할 수 있어 보안성이 강화됩니다.
2. 실습 예제: 뷰 생성 및 사용
뷰 생성 (VIEW CREATE)
아래 예제는 3개의 테이블을 조인하여 하나의 뷰를 만드는 구문입니다.
CREATE VIEW V_STUDENT_CLASS AS
SELECT
M.C_NO, M.C_NAME, M.PHONE, M.ADDRESS, M.GRADE,
C.REGIST_MONTH, C.CLASS_AREA, C.TUITION,
T.TEACHER_NAME
FROM TBL_CLASS_202201 C
JOIN TBL_TEACHER_202201 T ON C.TEACHER_CODE = T.TEACHER_CODE
JOIN TBL_MEMBER_202201 M ON M.C_NO = C.C_NO;
위 구문을 실행하면, V_STUDENT_CLASS라는 뷰가 생성됩니다.
이 뷰는 학생 정보, 수강 정보, 교사 정보를 통합하여 하나의 결과 집합처럼 사용할 수 있습니다.
뷰 사용 (SELECT FROM VIEW)
SELECT * FROM V_STUDENT_CLASS;
실제 테이블처럼 SELECT 문으로 조회가 가능합니다. 단, 이 뷰는 물리적인 데이터를 저장하지 않기 때문에, 원본 테이블이 변경되면 뷰의 결과도 실시간으로 반영됩니다.
뷰 삭제 (VIEW DROP)
뷰가 더 이상 필요 없을 경우 DROP VIEW 명령어로 삭제할 수 있습니다.
DROP VIEW V_STUDENT_CLASS;
3. VIEW를 사용하는 이유
이유 | 설명 |
반복 쿼리 단순화 | 자주 쓰는 복잡한 SELECT문을 뷰로 만들어 간편하게 호출 |
데이터 보안 | 사용자의 권한에 맞춰 제한된 열만 보여주는 뷰 생성 가능 |
유지보수 편의 | 원본 테이블 구조가 바뀌어도 뷰만 수정하면 일괄 대응 가능 |
논리적 독립성 | 실제 테이블 구조와 분리된 방식으로 데이터를 처리 |
4. 마무리하며
VIEW는 SQL에서 자주 사용하는 데이터 가상화 도구로, 복잡한 쿼리를 단순화하고 보안성을 높이는 데 매우 유용합니다. 특히 JOIN이 자주 필요한 상황에서는 VIEW를 적극적으로 활용해보시기 바랍니다.
반응형