티스토리 뷰
1절 표준 조인
표준 조인(standard join)
SQL에서 여러 테이블을 결합하여 데이터를 조회하는 방법
ANSI/ISO 표준
- INNER JOIN
- NATURAL JOIN
- CROSS JOIN
- OUTER JOIN
INNER JOIN
-- 기본 INNER JOIN
SELECT 컬럼[, 컬럼...] FROM 테이블1 A, 테이블2 B
WHERE A.컬럼 = B.컬럼;
-- ANSI/ISO 표준
SELECT 컬럼[, 컬럼...] FROM 테이블1 A
[INNER] JOIN 테이블2 B ON (A.컬럼 = B.컬럼);
-- USING
SELECT 컬럼[, 컬럼...] FROM 테이블1 A JOIN 테이블2 B USING(컬럼명);
두 테이블에서 조건에 일치하는 데이터를 반환하는 방식으로, 등가 조인 / 비등가 조인 모두 가능
JOIN은 디폴트값이 INNER JOIN이므로, INNER 생략 가능
INNER JOIN 내부에서 OUTER JOIN, CROSS JOIN을 사용할 수 없음(개별적 사용)
USING 또는 ON 조건절 필수
USING 조건절
같은 같은 이름을 가진 컬럼 중 등가 조인할 컬럼을 선택하는 방식
USING 조건절엔 컬럼명이 들어가며, 앨리어스나 테이블 사용이 불가
SQL SERVER에서는 USING 지원 X
ON 조건절
다른 이름을 가진 컬럼간 조인이 가능하며, 앨리어스나 테이블명 필수
조건절에 괄호를 사용해야 하지만, 필수는 아님
NATURAL JOIN
SELECT 컬럼[,컬럼 ...] FROM 테이블1 NATURAL JOIN 테이블2;
같은 이름을 가진 컬럼 전체에 대한 등가 조인으로, USING 조건절이나 ON 조건절 사용 불가
같은 데이터 유형 컬럼만 조인 가능
SELECT 절에 테이블 명이나 테이블의 앨리어스 사용 불가
CROSS JOIN
SELECT 컬럼[, 컬럼...] FROM 테이블1,테이블2;
가능한 모든 조합(카테시안 곱)을 생성하며, 조인조건이 없을 경우 발생
OUTER JOIN
-- ANSI/ISO 표준
SELECT 컬럼[, 컬럼...] FROM 테이블1 A
LEFT OUTER JOIN 테이블2 B ON A.칼럼=B.칼럼;
-- Oracle
SELECT 컬럼[, 컬럼...] FROM 테이블1 A, 테이블2 B
WHERE A.칼럼 = B.칼럼(+);
조인 조건에 해당되지 않는 데이터를 포함하며, USING 또는 ON 조건절 필수
- LEFT OUTER JOIN : 좌측 테이블의 모든 데이터를 포함하며, 우측에 없는 데이터는 NULL로 출력
- RIGHT OUTER JOIN : 우측 테이블의 모든 데이터를 포함하며, 좌측에 없는 데이터는 NULL로 출력
- Oracle은 모든 데이터를 포함하지 않는 쪽에 (+) 연산자 사용
- FULL OUTER JOIN : LEFT + RIGHT. ANSI 표준 문법만 지원
최종 수정일 : 2025/03/07
틀린 사항이 있다면 댓글로 알려주시면 감사하겠습니다.
'SQL > SQLD 이론' 카테고리의 다른 글
| [SQLD] SQL 활용 : 3절 계층형 질의와 셀프 조인 (0) | 2025.03.07 |
|---|---|
| [SQLD] SQL 활용 : 2절 집합 연산자 (0) | 2025.03.07 |
| [SQLD]SQL 기본 : 9절 JOIN (0) | 2025.03.07 |
| [SQLD] SQL 기본 : 8절 ORDER BY (0) | 2025.03.07 |
| [SQLD] SQL 기본 : 7절 GROUP BY, HAVING (0) | 2025.03.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- SQL이란
- db의 역사
- StringBuilder
- 필드
- 테이블
- DBMS
- BufferedWriter
- BufferedReader
- 자료구조
- 입출력
- 데이터베이스
- DB
- Scanner
- SQL
- oracle
- 배열
- dialect
- APS
- 레코드
- 알고리즘
- db오브젝트
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함