이번 파트에서는 SQL의 VIEW 기능에 대해 알아봅시다! VIEW는 실제 테이블은 아니지만 SELECT 쿼리 결과를 저장한 것처럼 사용할 수 있는 가상 테이블입니다.
복잡한 쿼리를 단순하게 관리하고, 보안을 위해 일부 컬럼만 외부에 노출하고 싶을 때 매우 유용합니다.
다루는 주요 문법:
CREATE VIEWCREATE OR REPLACE VIEWDROP VIEW💡 모든 예시는
company_db의employees및projects테이블을 기반으로 작성됩니다.
-- employees 테이블
emp_id | first_name | department | salary
-------|------------|-------------|--------
1 | Alice | Engineering | 6500.50
2 | Bob | Marketing | 5400.00
3 | Charlie | Engineering | 7100.00
4 | Diana | HR | 4300.75
CREATE VIEW — 뷰 생성뷰를 만들면 복잡한 쿼리를 단순한 이름으로 저장해 사용할 수 있습니다.
CREATE VIEW high_salary_employees AS
SELECT emp_id, first_name, salary
FROM employees
WHERE salary > 6000;
SELECT * FROM high_salary_employees;
| emp_id | first_name | salary |
|---|---|---|
| 1 | Alice | 6500.50 |
| 3 | Charlie | 7100.00 |
CREATE OR REPLACE VIEW — 뷰 수정기존 뷰를 덮어씌우고 새로운 조건으로 변경합니다.
CREATE OR REPLACE VIEW high_salary_employees AS
SELECT emp_id, first_name, salary
FROM employees
WHERE salary > 5000;
이제 다시 조회하면 더 많은 직원이 나옵니다.
| emp_id | first_name | salary |
|---|---|---|
| 1 | Alice | 6500.50 |
| 2 | Bob | 5400.00 |
| 3 | Charlie | 7100.00 |
DROP VIEW — 뷰 삭제뷰를 더 이상 사용하지 않을 경우 제거할 수 있습니다.
DROP VIEW high_salary_employees;
삭제하면 해당 뷰를 참조하는 쿼리는 더 이상 실행되지 않습니다.
| 명령어 | 기능 | 주요 활용 상황 |
|---|---|---|
CREATE VIEW | SELECT 쿼리를 뷰로 저장 | 복잡한 조인/조건 반복을 단순화 |
CREATE OR REPLACE VIEW | 기존 뷰를 조건 바꿔 재정의 | 필터 조건 변경 등 뷰 내용 업데이트 |
DROP VIEW | 뷰 삭제 | 사용하지 않는 뷰 제거 |
다음 포스팅에서는 WITH절에 대해서 배워볼게요. See you!