이전 포스트:
2025.02.16 - [자격증/SQLD] - [SQLD] 4-1: 서브쿼리 (Subquery)
SQLD Chapter 4-2: 뷰 (View)
1. 뷰(View)란?
뷰(View)는 SQL에서 사용하는 가상의 테이블로, 하나 이상의 테이블을 기반으로 생성됩니다. 실제 데이터를 저장하지 않으며, 쿼리를 통해 동적으로 데이터를 가져오는 방식으로 작동합니다.
1.1 뷰의 특징
- 가상 테이블: 실제 데이터를 저장하지 않고, 원본 테이블을 참조하여 동적으로 데이터를 조회
- 보안성 향상: 특정 컬럼이나 행만 포함하도록 제한하여 민감한 데이터 접근을 제어 가능
- SQL 재사용 가능: 복잡한 쿼리를 뷰로 정의하면 여러 번 재사용할 수 있어 코드의 가독성이 증가
- 독립성 유지: 원본 테이블의 구조가 변경되더라도, 뷰를 사용하면 애플리케이션에 영향을 최소화할 수 있음
2. 뷰 생성 및 사용
뷰를 생성하는 기본적인 SQL 문법은 다음과 같습니다.
CREATE VIEW 뷰이름 AS
SELECT 열1, 열2, ... FROM 원본테이블
WHERE 조건;
예제: 직원 정보 뷰 생성
EMPLOYEES 테이블
EMPLOYEE_ID | EMPLOYEE_NAME | DEPARTMENT_ID | SALARY |
1 | 홍길동 | 10 | 3000 |
2 | 김철수 | 20 | 4500 |
3 | 이영희 | 10 | 6000 |
4 | 박민수 | 30 | 7000 |
CREATE VIEW IT_EMPLOYEES AS
SELECT EMPLOYEE_ID, EMPLOYEE_NAME, SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 10;
뷰를 활용한 데이터 조회
SELECT * FROM IT_EMPLOYEES;
결과
EMPLOYEE_ID | EMPLOYEE_NAME | SALARY |
1 | 홍길동 | 3000 |
3 | 이영희 | 6000 |
✅ 설명
- IT_EMPLOYEES 뷰를 생성하여 DEPARTMENT_ID가 10인 직원들만 포함
- 실제 EMPLOYEES 테이블을 직접 조회하지 않고, 뷰를 통해 필터링된 데이터를 간편하게 조회
3. 뷰의 활용
뷰는 다양한 방식으로 활용될 수 있습니다.
3.1 특정 컬럼 제한
뷰를 사용하면 테이블의 특정 컬럼만 노출할 수 있습니다.
EMPLOYEES 테이블
EMPLOYEE_ID | EMPLOYEE_NAME | DEPARTMENT_ID | SALARY |
1 | 홍길동 | 10 | 3000 |
2 | 김철수 | 20 | 4500 |
3 | 이영희 | 10 | 6000 |
4 | 박민수 | 30 | 7000 |
CREATE VIEW EMPLOYEE_NAMES AS
SELECT EMPLOYEE_ID, EMPLOYEE_NAME FROM EMPLOYEES;
뷰를 활용한 데이터 조회
SELECT * FROM EMPLOYEE_NAMES;
결과
EMPLOYEE_ID | EMPLOYEE_NAME |
1 | 홍길동 |
2 | 김철수 |
3 | 이영희 |
4 | 박민수 |
✅ 설명
- EMPLOYEE_NAMES 뷰를 생성하여 EMPLOYEES 테이블의 EMPLOYEE_ID와 EMPLOYEE_NAME 컬럼만 포함
3.2 복잡한 쿼리 단순화
뷰는 복잡한 SQL 쿼리를 단순화하는 데 유용합니다.
CREATE VIEW HIGH_SALARY_EMPLOYEES AS
SELECT EMPLOYEE_ID, EMPLOYEE_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY > 5000;
뷰를 활용한 데이터 조회
SELECT * FROM HIGH_SALARY_EMPLOYEES;
결과
EMPLOYEE_ID | EMPLOYEE_NAME | SALARY |
3 | 이영희 | 6000 |
4 | 박민수 | 7000 |
✅ 설명
- HIGH_SALARY_EMPLOYEES 뷰를 사용하여 급여가 5000 이상인 직원만 조회
- 복잡한 WHERE 조건을 매번 작성할 필요 없이, 뷰를 사용하여 간편하게 조회 가능
4. 뷰 수정 및 삭제
뷰는 필요에 따라 수정 및 삭제할 수 있습니다.
4.1 뷰 수정 (ALTER VIEW)
CREATE OR REPLACE VIEW IT_EMPLOYEES AS
SELECT EMPLOYEE_ID, EMPLOYEE_NAME, SALARY, DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 10;
✅ CREATE OR REPLACE VIEW를 사용하면 기존 뷰를 덮어쓸 수 있습니다.
4.2 뷰 삭제 (DROP VIEW)
DROP VIEW IT_EMPLOYEES;
✅ DROP VIEW를 사용하면 뷰가 삭제됩니다.
5. Materialized View (머티리얼라이즈드 뷰)
일반적인 뷰는 데이터를 실시간으로 조회하지만, 머티리얼라이즈드 뷰(Materialized View)는 실제 데이터를 저장하여 성능을 향상시킵니다.
CREATE MATERIALIZED VIEW HIGH_SALARY_EMPLOYEES AS
SELECT * FROM EMPLOYEES WHERE SALARY > 5000;
✅ 머티리얼라이즈드 뷰는 미리 결과를 저장하여 성능을 최적화할 수 있음
6. 마무리
이번 장에서는 뷰(View)의 개념, 생성, 활용 및 수정 방법을 학습했습니다.
뷰는 데이터 접근을 단순화하고 보안을 강화하는 데 유용하지만, 성능을 고려하여 적절히 활용하는 것이 중요합니다.
다음 장에서는 집합 연산자(Set Operators)에 대해 다룰 예정입니다!
💡 도움이 되셨다면 댓글과 공감 부탁드립니다! 😊
📌 더 많은 알고리즘 풀이와 프로그래밍 자료는 블로그에서 확인하세요!
✉️ 문의나 피드백은 댓글이나 이메일로 남겨주세요.
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 4-4 : 그룹(소계) 함수 및 집계 연산자 (0) | 2025.02.17 |
---|---|
[SQLD] 4-3: 집합 연산자 (Set Operators) (0) | 2025.02.17 |
[SQLD] 4-1: 서브쿼리 (Subquery) (0) | 2025.02.17 |
Part 4: SQL 활용 (Advanced SQL Usage) (0) | 2025.02.16 |
[SQLD] 3-3: JOIN (조인)의 모든 것 (0) | 2025.02.16 |