[SQL] JOIN 및 QUERY

정은아·2022년 8월 30일
0

.SELF JOIN

: 조인은 서로 다른 두개 이상의 테이블을 연결하기도 하지만 
   하나의 테이블 내에서 조인을 해야 함 자료를 얻는 경우도 있습니다.
   
  셀프 조인은 자기 자신과 조인하는 경우입니다.

.OUTER JOIN

  : outer join 은 2개 이상의 테이블이 조인될 때 어느 한 쪽 테이블에는 
  해당하는 테이터가 존재하지 않는데 다른 쪽의 테이블에는 존재하는 경우 그 데이터는 
  출력되지 않는 문제를 해결하기 위해 사용되는 조인 기법이다.
    
  : 필요시에 꼭 써야 하는 OUTER JOIN이지만 필요없을 때는 쓰지 말아야한다.
    outer join은 모든 데이터를 다 가지고 올 때 full scan 을 하기 때문에
    DB에 무리를 가할 수 있다. 자주 쓰지 않는 게 좋다.

ANSI

   : select e.ename, d.dname
         from emp e NATURAL JOIN dept d
         where e.ename like '%T%';

.SUB Query(서브 쿼리)

: 서브 쿼리는 하나의 select 문장의 절 안에 포함된
  또 하나의 select 문 입니다.
  
  그렇기 때문에 서브 쿼리문을 포함하고 있는
  쿼리문을 메인 쿼리, 포함된 또 하나의 쿼리문을 서브 쿼리라고 합니다.
  
   서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고,
   반드시 괄호안에 넣어야 합니다.
   서브 쿼리는 메인 쿼리가 실행되기 전에 한 번만 실행 됩니다.
   

.단일행 Sub Query

   : 서브 쿼리를 수행한 결과가 1건만 나오고,
     이 결과를 메인 쿼리로 전달해서 메인 쿼리를 수행하게 된다.
     
     : 단일행 서브 쿼리는 수행 결과가 오직 하나의 row로만 
       반환하는 서브 쿼리를 갖는 것을 말합니다.  
       
       메인 쿼리의 where 절에는 단일행 비교 연산자를 이용한다
       
       = 같다
       > 크다
       < 작다
       >= 크거나 같다
       <= 작거나 같다
       <> 아니다

. 다중행 sub query

 : 다중행 서브 쿼리는 반환되는 결과가 
   하나 이상의 행일 때 사용하는 서브 쿼리
   
  : 다중행 서브 쿼리는 
    반드시 Multiple Row Operator(다중행 연산자)와
    함께 사용해야 합니다.
    
    종류                         의미
    
    IN                         메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서
                               하나라도 일치 하면 참
                               
    ANY,SOME                   메인 쿼리의 비교 조건이 서브 쿼리의
                               검색 결과와 하나 이상 일치하면 참
                               
    ALL                        메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와
                               모든 값이 일치하면 참
                               
    EXISTS                     메인 쿼리의 비교 조건이 서브 쿼리의
                               결과 중에서 하나라도 일치하면 참
                               검색 결과가 하나라도 존재하면 참    
                               

.ALL

  : ALL 연산자는 메인 쿼리의 비교 조건이 
    서브 쿼리의 검색 결과와 *모두* 일치하여야 함      
             
    > ALL  : 최대값 보다 큰 사람
    < ALL  : 최소값 보다 작은 사람   
    //비교는 모두와 하지만 결과적으로 그렇다는 말!   
       
    > ANY(SOME) : 최소값 보다 큰 사람 모두
    < ANY(SOME) : 최대값 보다 작은 사람 모두
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글