반응형

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 |