본문 바로가기

프로그래밍/오라클

[ORACLE] 오라클 EXISTS

[ORACLE] 오라클 EXISTS





문제로 풀어보는 EXISTS 사용법

EXISTS 01
4월에 판매된 상품과 6월에 판매된 상품 교집합처리!

1) 먼저 4월에 판매된 상품 검색





2) 6월에 판매된 상품 검색




3) 교집합 처리한다.
그럼 아래와 같은 결과를 얻을 수 있다. 
이걸 EXISTS문으로 바꿔서 검색해보자.






4)EXISTS문으로 처리
   - 조건을 달아줘야 한다!!
     잊지 말자!!





5) NOT EXISTS 처리
    - EXISTS : 교집합   ==   INTERSECT
    - NOT EXISTS : 차집합 ==  MINUS
       위와 같은 결과가 출력되는 것을 알 수 있다.
       즉, 교집합에 해당하는 부분만 제외한 
             A(바깥쪽 쿼리문)테이블의 데이터를 출력해주는 것이다.






 EXISTS 02 

1) 2005년도 구매금액이 2천만 이상인 우수고객을 지정해서 검색해보자.
    - '우수고객'  _  홑따옴표 '' 안에 문자를 넣어주면
       컬럼 하나를 생성하여 ''안의 내용으로 채워주는 역할을 한다.



이너쿼리를 조건으로 달아주니, 
해당하는 결과에만 '우수고객'이 달렸다!







EXISTS 03
2005년도 매입금액이 1천만원 이상인 거래처를 우수거래처로 검색해보자!






EXISTS 04
다시 한번 개념정리!!

INTERSECT로 찾으면 될 것을 왜? 굳이?
-> 왜냐면, 모든 컬럼을 기준으로 찾기 때문이다.

그래서 EXISTS를 쓴다.
-> EXISTS는 하나의 컬럼을 조건으로 주고 검색을 할 수 있다.







그럼 EXISTS를 사용해보자! ㅎㅎ
원하는 조건을 선택해서 검색을 하면 
OUTJOINER에 해당하는 쿼리문을 기준으로
INNERJOINER에 해당하는 쿼리문을 조건으로 
사용하여 결과를 출력해준다.