"복잡한 SQL문, 매번 쓰기 귀찮지 않나요?
VIEW로 깔끔하게 재사용해보세요."
✅ 뷰(View)란?
**뷰(View)**는 마치 가상 테이블입니다.
SELECT 쿼리의 결과를 마치 진짜 테이블처럼 저장해놓고 필요할 때마다 사용할 수 있도록 만든 것이에요.
- 📌 뷰는 물리적으로 데이터를 저장하지 않고, SQL문을 저장해두는 논리적 객체입니다.
- 뷰는 필요할 때마다 쿼리를 실행해서 결과를 보여주는 창문(view) 같은 역할을 해요.
🧾 기본 문법: CREATE VIEW
CREATE VIEW 뷰이름 AS
SELECT문;
📌 예시:
CREATE VIEW active_users AS
SELECT id, name, email
FROM users
WHERE is_active = 1;
이제부터는 아래처럼 간단하게 사용할 수 있어요.
SELECT * FROM active_users;
👶 초보자를 위한 설명: 왜 써야 하나요?
- 복잡한 SQL 반복 피하기
- 매번 긴 JOIN, WHERE 조건 쓰기 귀찮을 때 딱!
- 가독성 향상
- 쿼리를 간결하게 만들어 줘서 실수도 줄어들어요.
- 보안적 이유
- 중요한 테이블 전체를 직접 노출하지 않고, 필요한 컬럼만 보여줄 수 있어요.
- 재사용성
- 한 번 만들어 놓으면 다른 쿼리에서 계속 재사용 가능!
👨💻 실력자를 위한 팁: 실무에서 뷰 활용 고급 팁
1. ✅ WITH CHECK OPTION으로 수정 제한
CREATE VIEW vip_users AS
SELECT * FROM users
WHERE grade = 'VIP'
WITH CHECK OPTION;
- 이렇게 만들면, 이 뷰를 통해 grade = 'VIP'가 아닌 값으로는 업데이트/삽입이 불가능합니다.
- 데이터 일관성 유지에 유리하죠!
2. ✅ 뷰 위에 뷰도 가능 (Nested View)
CREATE VIEW korea_users AS
SELECT * FROM users WHERE country = 'Korea';
CREATE VIEW korea_vip_users AS
SELECT * FROM korea_users WHERE grade = 'VIP';
- 뷰를 조합해서 더 복잡한 뷰를 만들 수 있습니다.
- 단, 너무 깊게 중첩되면 유지보수가 어려워질 수 있으니 주의!
3. ❗주의: 뷰는 성능에 영향을 줄 수 있어요
- 뷰는 실제 테이블이 아니기 때문에, 매번 원본 테이블에 접근해서 데이터를 뽑습니다.
- 특히 JOIN이 많은 복잡한 뷰를 중첩하거나, 뷰 위에서 또 무거운 쿼리를 날릴 경우 성능 저하 발생 가능.
- 복잡한 뷰는 인덱스와 함께 성능을 반드시 테스트하세요.
🧹 뷰 관리하기
1. 뷰 확인
SHOW FULL TABLES IN database_name WHERE TABLE_TYPE LIKE 'VIEW';
2. 뷰 삭제
DROP VIEW view_name;
3. 뷰 수정
CREATE OR REPLACE VIEW view_name AS
SELECT ...

🧠 마무리 한 줄 요약
뷰는 '가상 테이블'이다.
복잡한 쿼리를 이름으로 저장해두고, 쉽게 재사용할 수 있는 훌륭한 도구다!
단, 뷰도 성능과 관리 측면에서 전략적으로 활용하자.
'국비지원 - 실버마케팅(코딩) 250206~' 카테고리의 다른 글
| 🐍 Python 기초 #1 — print() 함수 완전정복 (JS랑 비교까지!) (4) | 2025.05.22 |
|---|---|
| 🐍 [Python 입문] 자바스크립트 개발자를 위한 파이썬 기초 정복! (문법 & 예제 총정리) (0) | 2025.05.22 |
| “MySQL로 뽑고 Claude로 그린다?! | Python으로 데이터 시각화까지 한 번에 끝내는 방법” (0) | 2025.05.20 |
| 데이터 결측치가 무슨 의미야? (0) | 2025.05.16 |
| “복잡한 SQL은 이제 그만! VIEW로 가독성 높이기” (0) | 2025.05.16 |