'join'에 해당되는 글 1건

  1. 2010/08/06 boyo 6.26 / Type of Join

6.26 / Type of Join

Oracle/SQL 2010/08/06 14:08
  1.  natural join
     이름 같은 컬럼 1개. -join 1개
     join되는 컬러이름 지정부 생략
  2. inner join(기본 조인)
     using 사용가능(table alias 생략 가능)
     on절에서는 table alias 생략 불가
  3.  outer join
     using 사용가능
  4.  cross join

on clause
 : 모든 경우 가능, table alias 필수

self-joins
 : inner joind의 응용, where 대신 and 가능

non-equijoins
 : on절에서 = 대신 between문 사용. ( 등급 표시를 구현이 목적)

92버전
(+)족이 덤.(+)안한 쪽이 다 나옴.

inner versus outer joins (join되는 컬럼의 값이 널이라도)

left outer join 왼쪽이 다 나오게
right outer join 오른쪽이 다 나오게
full outer join 양쪽 다 나오게

cartesian products 모든 경우의 수 다나오게

cross join 카르티잔 곱 (on, using 쓰면 에러)
natual join (on, using 쓰면 에러)

subqueries
row 1개 리턴(값) : single row subquery
row n개 리턴(값) : multi row subquery
뷰형태(2차원) : view style의 subquery

 () singlerow일때는 상관없음 multirow일때 중의
multirow (in,any,all)


select rownum, rowid, deptno, dname from dept;

    ROWNUM ROWID                  DEPTNO DNAME
---------- ------------------ ---------- --------------
         1 AAAMfKAAEAAAAAQAAA         10 ACCOUNTING
         2 AAAMfKAAEAAAAAQAAB         20 RESEARCH
         3 AAAMfKAAEAAAAAQAAC         30 SALES
         4 AAAMfKAAEAAAAAQAAD         40 OPERATIONS

rownum은 order by이 하기전의 출력 순서

multirow ex)
select ename, sal, rownum
  2  from (select ename, sal from emp order by sal desc)
  3  where rownum <= 5;

ENAME             SAL     ROWNUM
---------- ---------- ----------
KING             5000          1
SCOTT            3000          2
FORD             3000          3
JONES            2975          4
BLAKE            2850          5

any 하나의 조건이라도 만족하면 됨
all 모든 조건을 만족해야 됨

union (합집합)

SQL> select ename from emp
  2  union
  3   select dname from dept;

ENAME
--------------
ACCOUNTING
ADAMS
ALLEN
BLAKE
CLARK
FORD
JAMES
JONES
KING
MARTIN
MILLER

ENAME
--------------
OPERATIONS
RESEARCH
SALES
SCOTT
SMITH
TURNER
WARD

18 rows selected.


union all(정렬을 안해서 빠르다)
교집합
차집합 minus 순서조심(결과 다름)
union 합집합 (중복제거, 집합이기때문에 내부적 정렬)

col "1" noprint 컬럼 리스트 안나옴


읽기 일관성 : commit하기 전까지 다른 유저는 보지 못함.

2010/08/06 14:08 2010/08/06 14:08