조인
관계형 데이터베이스에서 SQL을 이용해 ‘관계’를 맺는 방법이다.
조인에는 내부조인, 외부조인, ANSI조인, 등이 있다.
내부조인
동등조인 : 조건절에서 등호(=) 연산자를 사용해 2개 이상의 테이블, 뷰를 연결한 조인이다.
(WHERE 절 안의 등호(=) )
WHERE 테이블1의 컬럼 = 테이블2의 컬럼
세미조인 : 서브쿼리를 사용해 서브 쿼리에 존재하는 데이터만 메인 쿼리에서 추출하는 방법이다.
동등조인과 비슷해보이지만 중복을 제거하는 효과를 가지고있다.
(WHERE절 안의 IN, EXIST)
안티조인 : 서브 쿼리에 존재하지 않는 데이터만 메인 쿼리에서 추출하는 방법.
세미조인과 반대되는 개념이다. 역시 중복처리가 된다.
(WHERE 절 안의 NOT IN, NOT EXISTS)
셀프조인 : 한테이블을 사용해 조인하는 방법.
외부조인
MERGE랑 비슷한 구조인데 조인 조건에 만족하는 데이터 외에 조건에 명시된 컬럼에 갑싱 없거나 데이터가 아예없더라도 추출하는 조인 방법이다.
WHERE 절에서 외부조인으로 설정할 컬럼뒤에 ‘ (+) ‘ 를 붙여 외부조인이란 것을 명시하여 사용한다.
외부조인을 사용할 경우 조건에 해당하는 모든 것에 외부조인마크를 붙여야한다.
· 조인 대상 테이블 중 데이터가 없는 테이블 조인 조건에 (+)를 붙인다
· 외부 조인의 조인 조건이 여러 개일 때 모든 조건에 (+)를 붙인다
· 한번에 한 테이블에만 외부 조인을 할 수 있다.
· (+)연산자가 붙은 조건과 OR,IN 연산자를 같이 사용 할 수 없다.(IN은 결과가 1개일땐 가능함)
크로스(카타시안) 조인
WHERE 절에 조인 조건을 안넣는 조인으로 조인이 없기 때문에 테이블1 행 * 테이블2 행의 결과값이 나온다.
안시(ANSI) 조인
ANSI SQL 문법에서 사용한 조인을 오라클에서 변환해서 사용하는 것이다.
WHERE에서 조인하는 것이 아닌 FROM 절에서 조인한다.
내부조인
FROM 절
INNER JOIN 테이블,뷰 이름 ON (조인 조건)
(조인조건에 쓰인 컬럼 이름이 동일 할 경우 ON대신에 USING으로 바꾸고 테이블명 빼도 됨)
WHERE 절
외부조인
FROM 테이블1
LEFT(RIGHT) [OUTER] JOIN 테이블2 ON (조인 조건)
기준 테이블이 왼쪽에있으면 LEFT 오른쪽에있으면 RIGHT를 붙이면된다 OUTER생략가능
WHERE절
크로스(카타시안)조인
FROM 테이블1
CROSS JOIN 테이블 2;
FULL OUTER조인
외부 조인은 한쪽을 대상으로 빈곳도 그대로 출력했는데 FULL OUTER는 두개다 외부 조인을 적용하는 것이다.
FROM 테이블1
FULL OUTER JOIN 테이블2 ON 조인조건
'프로그래밍 > 오라클' 카테고리의 다른 글
(오라클) With 절 (0) | 2016.07.10 |
---|---|
(오라클) 계층형 쿼리 (0) | 2016.07.10 |
(오라클) SQL 함수 (0) | 2016.07.10 |
(오라클) 의사퀄럼, 표현식, 조건식 (0) | 2016.07.10 |
(오라클) SELECT, INSERT, UPDATE, MERGE, DELETE, 데이터 저장 및 복구 (0) | 2016.07.10 |