[SQLD] 4-1. SQL 활용 - 표준 조인, Standard SQL, Inner Join, Natural Join, Using Join, Cross Join, Outer Join
A. STANDARD SQL 개요
1. 관계형 데이터베이스를 유일하게 접속할 수 있는 언어가 SQL
2. 벤더별로 일부 기능의 개발이 진행 중인 경우도 있고 벤더별로 특이한 기술 용어는 여전히 호환이 안 되고 있음
3. ANSI/ISO SQL 표준을 통해 STANDARD JOIN을 포함한 많은 기능이 상호 벤치마킹하면서 DBMS 간 평준화됨
B. ANSI/ISO 표준 SQL의 기능
1. STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 둥 새로운 FROM 절 JOIN 기능)
2. SCALAR SUBQUERY, TOP-N QUERY 둥의 새로운 SUBQUERY 기능
3. ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능
4. WINDOW FUNCTION 같은 새로운 개념의 분석 기능
C. 일반 집합 연산자와 SQL 비교
1. 일반 집합 연산자 UNION은 SQL의 UNION
2. 일반 집합 연산자 INTERSECTION은 SQL의 INTERSECT
3. 일반 집합 연산자 DIFFERENCE은 SQL의 EXCEPT(Oracle은 MINUS)
4. 일반 집합 연산자 PRODUCT은 SQL의 CROSS JOIN
D. 순수 관계 연산자와 현재 SQL
1. 순수 관계연산자 SELECT 연산은 SQL의 WHERE 절
2. 순수 관계연산자 PROJECT 연산은 SQL의 SELECT 절
3. 순수 관계연산자 (NATURAL) JOIN 연산은 SQL의 JOIN
4. 순수 관계연산자 DIVIDE 연산은 현재 사용되지 않음
E. ANSI/ISO SQL에서 제시한 JOIN 형태
1. INNER JOIN , NATURAL JOIN , USING 조건절, ON 조건절, CROSS JOIN , OUTER JOIN
2. NATURAL JOIN은 INNER JOIN의 하위 개념
3. WHERE 절의 JOIN 조건을 FROM 절의 ON 조건절로 분리하여 표시
【INNER JOIN】
1. JOIN 조건에서 동일한 값이 있는 행만 반환
2. USING 조건절이나 ON 조건절을 필수적으로 사용
【NATURAL JOIN】
1. 동일한 이름의 모든 칼럼을 EQUI(=) JOIN
2. USING 조건절, ON 조건절, WHERE 절에서 JOIN 조건을 지정할 수 없음
3. JOIN에 사용된 칼럼들은 같은 데이터 유형
4. ALIAS나 테이블 명과 같은 접두사를 붙일 수 없음
5. JOIN에 사용된 같은 이름의 칼럼을 하나로 처리
6. SQL Server에 없는 기능
【USING 조인절】
1. 원하는 칼럼끼리 조인 가능
2. SQL Server에서는 지원하지 않음
3. USING 절에 기술된 컬럼이 먼저 출력
【ON 조건절】
1. JOIN 조건과 비JOIN 조건 분리
2. 칼럼명이 일치하지 않아도 JOIN 칼럼으로 사용 가능
3. JOIN 조건절에 테이블 ALIAS나 테이블명 사용 가능
4. SELECT 절에 사용된 칼럼명을 명확하게 지정해야 함
5. ON 조건절은 WHERE 절의 JOIN 조건과 동일한 기능
【CROSS JOIN】
1. 일반 집합 연산자의 PRODUCT의 개념
2. 생길 수 있는 모든 데이터의 조합
3. CARTESIAN PRODUCT 또는 CROSS PRODUCT와 같은 표현
4. M*N 건의 데이터 조합이 발생
5. 일반적으로 잘 사용되지 않는 JOIN
6. 데이터웨어하우스에서 개별 DEMENTION을 FACT 칼럼과 조인 전 DEMENTION 테이블끼리 CROSS JOIN
【OUTER JOIN】
1. JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용
2. USING 조건절이나 ON 조건절을 필수적으로 사용
3. LEFT/RIGHT OUTER JOIN의 경우에는 기준이 되는 테이블이 조인 수행 시 무조건 드라이빙 테이블
【(+) 키워드 사용한 OUTER JOIN】
1. JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용
2. Oracle은 JOIN 칼럼 뒤에 ‘(+)’ 를 표시
3. Sybase는 비교 연산자의 앞이나 뒤에 ‘(+)’ 를 표시
4. IN이나 OR 연산자 사용시 에러 발생
5. ‘(+)’ 표시가 누락된 칼럼 존재 시 OUTER JOIN 오류 발생
6. FULL OUTER JOIN 미지원
【FULL OUTER JOIN】
1. 좌측, 우측 테이블의 모든 데이터를 읽어 JOIN 하여 결과를 생성
2. RIGHT OUTER JOIN과 LEFT OUTER JOIN의 결과로 중복 데이터를 삭제한 합집합
3. OUTER 키워드를 생략하여 FULL JOIN으로 사용 가능
'IT 용어 및 개념 > SQL' 카테고리의 다른 글
[SQLD] 4-3. SQL 활용 - 계층형 질의(Hierarchical Query), Oracle 계층형 질의, 질의 함수, SQL Server 계층형 질의, SELF JOIN (0) | 2024.10.22 |
---|---|
[SQLD] 4-2. SQL 활용 - 집합연산자(SET OPERATION) 개요, 종류, 사용법 (0) | 2024.10.22 |
[SQLD] 3-10. SQL 기본 - 예상문제풀이 (Question&Answer) (0) | 2024.10.21 |
[SQLD] 3-9. SQL 기본 - 조인(JOIN), EQUI JOIN, JOIN 구문 주의 사항 (0) | 2024.10.21 |
[SQLD] 3-8. SQL 기본 - OrderBy정렬, SELECT 문장, ROWNUM, Top N 쿼리 (0) | 2024.10.21 |