1. STANDARD SQL
관계형 데이터베이스를 유일하게 접속할 수 있는 언어가 바로 SQL이다. 하지만 벤더별로 문법이나 사용되는 용어의
차이가 너무 커져서 상호 호환성이나 SQL 학습 효율이 많이 부족한 문제가 발생하였다. 이에 향후 SQL에서 필요한
기능을 정리하고 호환 가능한 여러 기준을 제정한 것이 ANSI/ISO SQL3.
이처럼 ANSI/ISO 표준을 통해 STANDARD JOIN을 포함한 많은 기능을 상호 벤치마킹하고 발전하면서 DBMS간에
평준화를 이루어 가고 있다.
대표적인 ANSI/ISO 표준 SQL의 기능은 다음의 내용을 포함한다.
- STANDARD JOIN 기능 추가(CROSS, OUTER JOIN 등 새로운 FROM절 JOIN기능들)
- SCALAR SUBQUERY, TOP-N QUERY 등 새로운 SUBQUERY 기능들
- ROLLUP, CUBE, GROUPING SETS 등 새로운 리포팅 기능
- WINDOW FUNCTION 같은 새로운 개념의 분석 기능들
1) 일반 집합 연산자
- UNION : 합집합, 공통 교집합의 중복을 없애기 위한 사전작업으로 시스템에 부하를 주는 정렬 작업 발생
- UNION ALL : 중복을 허용한 합집합, 정렬작업이 없기 때문에 동일한 결과가 나오는 거라면 UNION ALL 권장
- INTERSECT : 교집합
- MINUS(Orcle), EXCEPT(SQL Server) : 차집합
- PRODUCT : 곱집합, CARTESIAN PRODUCT(카티션 곱), 양쪽 집합의 MxN 건의 데이터 조합이 발생
2) 순수 관계 연산자
- SELECT 연산 : WHERE절의 조건절 기능으로 구현
- PROJECT 연산 : SELECT절의 컬럼 선택 기능으로 구현
- JOIN 연산 : WHERE절의 INNER JOIN조건, FROM절의 NATURAL/INNER/OUTER JOIN, USING/ON 조건절 등
2. FROM절 JOIN형태
1) INNER JOIN : 무조건 USING/ON 조건절 중 하나를 필수적으로 사용해야 한다.
2) NATURAL JOIN : 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI JOIN 수행한다.
USING/ON조건절, WHERE절에서 JOIN조건을 정의할 수 없다
SQL Server에서는 지원하지 않는 기능이다.
JOIN에 사용된 컬럼들은 같은 데이터 유형이어야 하며 ALIAS나 테이블명과 같은 접두사 X
3) USING 조건절 : NATURAL JOIN에서는 모든 일치되는 컬럼들에 대해 JOIN이 이루어지지만 FROM절의 USING
조건절을 이용하면 같은 이름을 가진 컬럼들 중에서 원하는 컬럼에 대해서만 선택적으로 EQUI JOIN
을 할수가 있다.
컬럼 순서를 지정하지 않으면 USING 조건절의 기준이 되는 컬럼이 다른 컬럼보다 먼저 출력된다
4) ON 조건절
5) CROSS JOIN(=CARTESIAN PRODUCT)
6) OUTER JOIN
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN(=FULL JOIN) : 중복된 데이터는 제거
[SQL 전문가 가이드] 조인(JOIN) (0) | 2022.09.06 |
---|---|
[SQL 전문가 가이드] TOP(N) 쿼리, ROWNUM 조건 (0) | 2022.09.05 |
[SQL 전문가 가이드] GROUP BY, HAVING절 (0) | 2022.09.04 |
[SQL 전문가 가이드] 함수(Function) (0) | 2022.09.03 |
[PostgreSQL] 시작하기 (0) | 2022.06.10 |