5-12. 카티시안 곱 (Cartesian Product) > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 5-12. 카티시안 곱 (Cartesian Product)

본문

조인의 결과가 너무 많이 나올경우 카티시안 곱이 형성 된다.

즉 잘못되었다고 판단 하면 된다.

한 테이블당 100 건 이라면 

100 X 100 이 출력된다.

 

․ 카티시안 곱은 다음 경우에 생성됩니다.

- 조인조건을 생략한 경우

- 조인조건이 부적합한 경우

- 첫 번째 테이블의 모든 행이 두 번째 테이블의 모든 행에 조인된 경우

․ 카티시안 곱이 생성되지 않도록 하려면 WHERE절에 항상 유효한 조인 조건을 포함시켜야 한다.

카티시안 곱은 너무 많은 행을 생성하므로 결과가 별로 유용하게 사용되지 않다.

특별히 모든 테이블에 있는 모든 행을 조합해야 하는 경우가 아니라면 항상 WHERE절에 적합한 조인 조건을 포함시키도 록 한다.

카티시안 곱은 적정 양의 데이터를 시뮬레이트하기 위해 많은 수의 행을 생성해야 하는 경우와 같은 일부 테스트에서 유용하다.

 

예제)

오라클 디비 예제 : 

SELECT last_name, department_name dept_name

FROM employees, departments;

 

☞설명)

예제는 EMPLOYEES테이블과 DEPARTMENTS테이블에서 사원의 이름과 부서 이름을 표시한다.

WHERE절을 지정하지 않았으므로 EMPLOYEES테이블의 모든 행(20개 행)이 DEPARTMENTS테이블의 모든 행(8개

행)과 조인되어 결과적으로 160개 행(row)이 생성된다.

 

MSSQL 디비 예제 :

SELECT SUBSTRING(RTRIM(authors.au_fname)+' '

+RTRIM(authors.au_lname)+ ' ',1,25) AS Name,

authors.au_id, titleauthor.title_id

FROM titleauthor , authors

 

 

① 교차 조인 작성

․ CROSS JOIN절은 두 테이블 상호간의 조합을 생성합니다.

․ 이것은 두 테이블 사이의 카티시안 곱(Cartesian Product)과 동일합니다.

 

오라클 디비 예제 : 

SELECT last_name, department_name

FROM employees

CROSS JOIN departments;

 

☞설명)

예제는 다음과 동일한 결과를 생성한다.

SELECT last_name, department_name

FROM employees, departments; 

 

 

 

댓글목록

5. JOIN 쿼리 [ 여러 테이블의 데이터 출력 ]
이어쓰기 1.A 5-1. SQL 1999 구문을 사용한 테이블 조인
이어쓰기 2.B 5-2. 등가 테이블 조인
이어쓰기 3.D 5-3. 자연 조인 작성
이어쓰기 4.E 5-4. AND 연산자를 사용한 주가 검색 조건
이어쓰기 5.F 5-5 USING절을 포함하는 조인 작성(오라클에서 사용됨, MSSQL에서는 사용 안됨)
이어쓰기 6.G 5-6. 테이블 별칭 사용
이어쓰기 7.H 5-7. JOIN ON ( ANSI) 절로 조인 작성
이어쓰기 8.I 5-8. 자체 조인
이어쓰기 9.J 5-9 세개 이상의 테이블 조인
이어쓰기 10.K 5-10. 비등가 조인
이어쓰기 11.L 5-11. 포괄 조인
이어쓰기 12.M 5-12. 카티시안 곱 (Cartesian Product)
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기