9월 15일 SQL 실습 정리하기

 



SELECT *

FROM cycle


SELECT *

FROM product




outer join 실습 outerjoin4 





SELECT 

FROM

(SELECT p.pid, p.pnm ,NVL(c.cid , 1 ) cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p left outer join cycle c

ON ( p.pid = c.pid )

AND cid = 1 ) a , customer

WHERE 




SELECT * 

FROM customer 




SELECT p.pid, p.pnm ,NVL(c.cid , 1 ) cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p , cycle c

WHERE p.pid = c.pid(+) 

AND c.cid(+) = 1


SELECT p.pid, p.pnm , :cid cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p , cycle c

WHERE p.pid = c.pid(+) 

AND c.cid(+) = 1



INNER JOIN : 조인이 성공하는 데이터만 조회가 되는 조인 방식 

OUTER JOIN : 조인에 실패해도 기준으로 정한 테이블의 컬럼은 조회가 되는 조인 방식





CROSS JOIN (cartesian product) 


조인조건이 없을때 실행이 된다. 


SELECT * 

FROM emp, dept; 


where 절에 기술하지 않을때 

14 * 4 -> emp 테이블의 행 건수(14) * dept 테이블의 행 건수 (4) = 56건 



where 절을 기술안하면 cross join 인데 ansi 에서는 

from emp CROSS JOIN -- 



crossjoin 1 실습 


SELECT * 

FROM CUSTOMER



SELECT * 

FROM PRODUCT 



SELECT * 

FROM customer, product 



outer join 5 번 - 과제 


SELECT p.pid, p.pnm ,NVL(c.cid , 1 ) cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p left outer join cycle c

ON ( p.pid = c.pid )

AND cid = 1


SELECT * 

FROM customer 




SELECT p.pid, p.pnm ,NVL(c.cid , 1 ) cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p , cycle c

WHERE p.pid = c.pid(+) 

AND c.cid(+) = 1


SELECT p.pid, p.pnm , :cid cid , NVL(c.day, 0 ) day ,NVL(c.cnt, 0 ) cnt   

FROM product p , cycle c

WHERE p.pid = c.pid(+) 

AND c.cid(+) = 1


댓글