제 1절 표준 조인
1. Standard SQL 개요
- 표준 SQL의 기능
- STANDARD JOIN(CROSS, OUTER JOIN 등)
- SCALAR SUBQUERY, TOP-N QUERY 등 새로운 서브쿼리
- ROLLUP, CUBE, GROUPING SETS 등의 그룹함수
- WINDOW FUNCTION(윈도 함수-온라인 분석 처리 용도)
1.1 관계대수
어떻게 질의를 수행할 것인가를 명시하는 절차적인 언어(How)
가. 일반 집합 연산자
-
Union (UNION)
-
합집합 연산
-
UNION ALL은 교집합 2번 보여줌.
A,B 컬럼이 교집합이 없을시 UNION ALL이 성능 ↑
-
-
Intersection (INTERSECT)
- 교집합 연산
-
Differecne (EXCEPT-SQL Server, MINUS-Oracle)
- 차집합 연산
-
Catesian Product (CROSS JOIN)
- 교차곱 연산
나. 순수 관계 연산자
-
Select (WHERE)
- 테이블의 행 추출
-
Project (SELECT)
- 테이블의 열 추출
-
Join (INNER JOIN, OUTER JOIN, NATURAL JOIN 등)
-
Divide (현재 사용안함)
2. FROM 절 JOIN 형태
유형 | 설명 |
---|---|
INNER JOIN(내부조인) | 공통 존재 컬럼의 값이 같은 경우를 추출(WHERE 절 활용) |
NATURAL JOIN | INNER JOIN의 하위 개념으로 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 EQUI JOIN 수행 |
OUTER JOIN(외부 조인) | 왼쪽, 오른쪽, 완전 외부 조인이 있음 |
CROSS JOIN(교차 조인) | 조인 조건이 없는 모든 데이터 조합을 추출하는 기법 |
SELF JOIN(셀프 조인) | 자기 자신에게 별칭을 지정한 후 다시 조인하는 기법 |
- 조인 조건은
ON 절
을 통해 기술
3. INNER JOIN
JOIN 조건에서 동일한 값이 있는 행만 반환한다.
SELECT A.컬럼1, B.컬럼1
FROM 테이블1 A [INNER] JOIN 테이블2 B
ON 조인조건
[WHERE 검색 조건];
-> 중복된 컬럼도 하나로 치지 않고 표현
4. NATURAL JOIN
두 테이블 간의 동일한 이름을 갖는 모든 컬럼에 대해 EQUI(=) JOIN 수행
NATURAL JOIN을 수행할 때는 조인 조건을 정의할 수 없다.
- SQL Server 에서는 지원하지 않는다.
SELECT 컬럼1, 컬럼2,...
FROM 테이블1 NATURAL JOIN 테이블2;
-> 조인 조건을 명시하지 않고 공통된 컬럼으로 JOIN 처리
-> JOIN에 사용된 컬럼은 같은 데이터 유형이어야 함
-> 자연조인에서 사용된 열은 식별자를 가질 수 없음
-> 별도의 컬럼 순서를 지정하지 않으면 자연 조인의 기준이 되는 컬럼들이 다른 컬럼보다 먼저 출력
-> 조인에 사용된 같은 이름의 컬럼은 하나로 처리
5. USING 조건절
FROM 절에서 USING 조건절을 이용하여 같은 이름을 가진 컬럼 중에 원하는 컬럼에 대해서만 EQUI JOIN을 할 수 있다.
- SQL Server에서는 지원하지 않음
- JOIN 칼럼에 대해서 ALIAS나 테이블 이름과 같은 접두사 붙일 수 없음
- JOIN 조건에 참여하지 않은 컬럼은 2개의 컬럼으로 표시
SELECT DEPTNO, DEPT.DNAME, DEPT.LOC, DEPT_TEMP.DNAME, DEPT_TEMP.LOC
FROM DEPT JOIN DEPT_TEMP
USING (DEPTNO);
6. ON 조건절
ON 조건절을 사용하면 컬럼명이 다르더라도 JOIN 조건을 사용할 수 있다.
- JOIN 컬럼에 대해 ALIAS나 테이블 이름과 같은 접두사 사용할 수 있음
7. CROSS JOIN
SELECT 컬럼1, 컬럼2,...
FROM 테이블1 CROSS JOIN 테이블2;
8. OUTER JOIN
조인 조건에 동일한 값이 없는 행도 반환할 때 사용
- LEFT OUTER JOIN : 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출
SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2, ...
FROM 테이블1 A LEFT [OUTER] JOIN 테이블2 B
ON 조인조건
[WHERE 검색조건];
- RIGHT OUTER JOIN : 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터 추출
- FULL OUTER JOIN : 양쪽의 모든 데이터를 추출
9. INNER vs OUTER vs CROSS JOIN 비교
Author And Source
이 문제에 관하여(제 1절 표준 조인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@suyeon-jung/제-1절-표준-조인저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)