2026/06/03 3

Ch06. 뷰 - 뷰의 장점과 단점

뷰의 장점편리성과 재사용성가장 큰 장점이다. 복잡한 "SELECT" 쿼리(수십 줄에 달하는 "JOIN", 서브쿼리, "CASE" 문의 조합)를 뷰 뒤에 숨겨둘 수 있다.사용자 입장: 쿼리의 내부 로직을 전혀 몰라도, "SELECT * FROM v_my_report;" 한 줄만으로 원하는 결과를 얻을 수 있다.개발자 입장: 동일한 로직이 여러 곳에서 필요할 때, 뷰 하나만 만들어두면 모두가 재사용할 수 있다. 만약 로직을 수정해야 할 경우, 뷰의 정의(ALTER VIEW)만 한 번 수정하면 이 뷰를 사용하는 모든 곳에 즉시 반영되므로 유지보수성이 극적으로 향상된다. 보안성실무에서 뷰를 사용하는 가장 중요한 이유 중 하나다. 뷰는 데이터베이스에 대한 섬세한 "권한 제어"를 가능하게 한다.특정 컬럼 숨기기: ..

Ch06. 뷰 - 생성, 조회, 수정, 삭제

CREATE VIEW: 뷰 생성하기CREATE VIEW 뷰이름 AS SELECT 쿼리문;뷰 이름 앞에는 "v_"나 "view_" 같은 접두사를 붙여서 다른 테이블과 쉽게 구분할 수 있도록 하는 것이 실무에서 흔히 사용하는 좋은 습관이다.create view v_category_order_status as SELECT p.category, COUNT(*) AS total_orders, SUM(CASE WHEN o.status = 'COMPLETED' THEN 1 ELSE 0 END) AS completed_count, SUM(CASE WHEN o.status = 'SHIPPED' THEN 1 ELSE 0 END) AS shipped_count, SUM(CASE WHEN o.status = 'PENDI..

Ch06. 뷰 - 뷰(View)란?

이 쿼리를 우리 쇼핑몰의 재무팀, 마케팅팀, 운영팀에서 매일 아침 확인해야 하는 핵심 지표라고 가정해 보자. SELECT p.category, COUNT(*) AS total_orders, SUM(CASE WHEN o.status = 'COMPLETED' THEN 1 ELSE 0 END) AS completed_count, SUM(CASE WHEN o.status = 'SHIPPED' THEN 1 ELSE 0 END) AS shipped_count, SUM(CASE WHEN o.status = 'PENDING' THEN 1 ELSE 0 END) AS pending_countFROM orders oJOIN products p ON o.product_id = p.product_idGROUP BY ..