2009/12/03 13:24
http://blog.naver.com/findaday/94643786
|
|
1. 내부 조인(INNER JOIN)
내부조인 (Inneer Join) 은 단순히 연결만 한 개념이 아니라 결과값이 일치하는 것만 join을 한 것이다. 기준이 되는 테이블과 일치하는 값만 join 하여 return 한다고 생각을 하면 된다. | |
|
|
2. 전체외부조인 (FULL JOIN)
오른쪽 외부조인과 왼쪽 외부조인을 합친 개념이다. 왼쪽/오른쪽 테이블의 값이 일치하든 일치 하지 않든 모두 가져오는 조인이다. 다만 Cross join 과 다른 점은 Full join 은 빈 값을 null 로 리턴한다는 것이고 Crosss join 은 양쪽 테이블을 그냥 단순히 연결시켜 준다는 점이다. | |
|
|
3. 왼쪽 외부 조인 (LEFT JOIN)
왼쪽 테이블을 기준으로 외부 조인 한다. 오른쪽 테이블에 인치하는 값이 없어도 왼쪽 테이블의 데이터는 모두 가져 온다. 이때 오른쪽에 없는 데이터는 null 로 대치 된다. 외부조인은 여집합(Complement) 의 개념이다. | |
|
|
4. 오른쪽 외부 조인(RIGHT JOIN)
오른쪽 테이블을 기준으로 외부 조인 한다. 왼쪽 테이블에 일치하는 값이 없어도 오른쪽 테이블의 데이터는 모두 가져 온다. 이때 왼쪽에 없는 데이터는 null 로 대치 된다. | |
5. 교차조인(CROSS JOIN)
교차 조인 (Cross Join) 은 말 그대로 두 개의 테이블을 그냥 붙였다는 개념이다. 아무런 조건이나 제한 사항 없이 양쪽은 있는 그대로 연결만 했다는 개념으로 생각을 하면 되겠다. 합집합(Union) 이라는 개념으로 생각해도 큰 무리가 없다. | |
|
|
|
|
6. 합집합 세로결합(UNION)
UNION 두 집합에 대해 중복되는 행을 제외한 합집합
UNION ALL 두 집합에 대해 중복되는 행을 포함한 합집합
MINUS 두 집합간의 차집합
INTERSECT 두 집합간의 교집합
- UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값들을 반환 합니다.
- UNION 연산은 두개의 테이블에 속하면서 중복되는 행을 제외한 행 집합을 결과 집합으로 반환한다. 한가지 주의할 점은 UNION 연산에서는 두개의 테이블에서 중복되는 행을 제외시키기 위하여 내부적으로 정렬 작업이 발생하여 UNION ALL 연산보다 처리 속도가 느려진다는 점이다. UNION 연산의 결과 집합은 오름차순으로 출력되며 테이블의 순서를 바꾸어도 결과는 동일하다. UNION ALL연산은 중복되는 행을 제외하지 않고 모두 출력한다. 따라서 UNION ALL 연산은 정렬 작업이 필요없는 관계로 UNION 연산보다 처리 속도가 빠르다.
- CORR(CORRESPONDING) 옵션은 두 개의 테이블에서 공통 변수를 사용.
- ALL 옵션은 중복 제거 없이 세로 결합.
| |
|
|
7. 교집합 세로결합(INTERSECT)
- INTERSECT는 두 행의 집합중 공통된 행을 반환
- 두개의 테이블에 모두 속하는 행집합을 결과 집합으로 반환한다. INTERSECT연산에서 테이블의 순서를 바꾸어도 결과 집합은 동일.
- CORR(CORRESPONDING) 옵션은 두 개의 테이블에서 공통 변수를 사용.
- ALL 옵션은 중복 제거 없이 세로 결합. | |
|
|
8. 차집합 세로결합(MINUS)
- MINUS는 첫번째 SELECT문에 의해 반환되는 행중에서 두번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환.
- UNION이나 INTERSCET 연산과 다르게 테이블의 순서를 바꾸면 출력 결과가 달라짐. | |
|
|
9. 외부합집합(OUTER UNION)
세로 결합을 수행시 모든 변수를 출력한다.
OUTER UNION CORR은 DATA STEP의 SET와 같다. | |
|
|
10. 배반 합집합 세로결합(EXCLUSIVE UNION)
2개의 테이블 결합시 공통된 | |