반응형
Ch 05. SQL 기본 - 03. VIEW
[] INLINE VIEW
SELECT A.* FROM ( SELECT NAME , CREDIT_LIMIT FROM CUSTOMERS ) A ; |
- SELECT문의 FROM절 내부에 있는 또다른 SELECT문을 인라인 뷰(INLINE VIEW)라고 한다.
SELECT A.* FROM ( SELECT A.* FROM ( SELECT NAME , CREDIT_LIMIT FROM CUSTOMERS ) A ) A ; |
- 인라인 뷰 내에 있는 SELECT문의 FROM절에 또다른 인라인 뷰를 넣을 수 도 있다. (인라인 뷰 안에 인라인 뷰 가능)
[] VIEW
(1) 연도별 각 고객의 매출 금액 구하기
SELECT C.NAME AS CUSTOMER , TO_CHAR(A.ORDER_DATE, 'YYYY') AS YEAR , SUM( B.QUANTITY * B.UNIT_PRICE ) SALES_AMOUNT FROM ORDERS A , ORDER_ITEMS B , CUSTOMERS C WHERE 1=1 AND A.STATUS = 'Shipped' AND A.ORDER_ID = B.ORDER_ID AND A.CUSTOMER_ID = C.CUSTOMER_ID GROUP BY C.NAME, TO_CHAR(A.ORDER_DATE, 'YYYY') ORDER BY C.NAME ; |
- 이 SELECT문은 발송된 주문에 대한 연도별 각 고객의 매출 총 금액을 구하는 SQL문이다.
- 이 정보를 조회 하기 위해서는 위와 같은 SELECT문을 실행해야 한다.
[] VIEW
(2) 연도별 각 고객의 매출 금액 구하기 뷰 생성
CREATE OR REPLACE VIEW CUSTOMER_SALES AS SELECT C.NAME AS CUSTOMER , TO_CHAR(A.ORDER_DATE, 'YYYY') AS YEAR , SUM( B.QUANTITY * B.UNIT_PRICE ) SALES_AMOUNT FROM ORDERS A , ORDER_ITEMS B , CUSTOMERS C WHERE 1=1 AND A.STATUS = 'Shipped' AND A.ORDER_ID = B.ORDER_ID AND A.CUSTOMER_ID = C.CUSTOMER_ID GROUP BY C.NAME, TO_CHAR(A.ORDER_DATE, 'YYYY') ORDER BY C.NAME; |
SELECT * FROM CUSTOMER_SALES; |
- 이 CREATE VIEW문은 발송된 주문에 대한 연도별 각 고객의 매출 총 금액을 구하는 뷰를 생성하는 SQL문이다.
- 뷰를 만들면 SELECT문을 반복적으로 Typing할 필요 없이 해당 뷰를 SELECT하면 된다.
반응형
'자격증 > 패스트 캠퍼스 데이터베이스와 SQLD 합격패스 Online' 카테고리의 다른 글
패스트 캠퍼스 챌린지 20일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.25 |
---|---|
패스트 캠퍼스 챌린지 19일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.24 |
패스트 캠퍼스 챌린지 17일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.22 |
패스트 캠퍼스 챌린지 16일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.21 |
패스트 캠퍼스 챌린지 15일차 데이터베이스와 SQLD 합격패스 Online (0) | 2021.09.20 |