본문 내용은 모두 필자가 공부하며 직접 정리한 내용입니다.
Kdata 데이터자격검정의 SQL 개발자(SQLD) 가이드를 참고하였습니다.
─지난 글 보기─
과목 2 SQL 기본 및 활용
제 1장 SQL 기본
제 9절 조인(JOIN)
1.JOIN 개요
ㆍ두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것
ㆍFROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다.
2. EQUI JOIN
ㆍEQUI(등가) JOIN은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법
ㆍ대부분 PK ↔ FK 의 관계를 기반으로 한다. (반드시 그런것은 아니다.)
SELECT 테이블1.칼럼명, 테이블2.칼럼명, ...
FROM 테이블1, 테이블2
WHERE 테이블1.칼럼명1 = 테이블2.칼럼명2;
→ WHERE 절에 JOIN 조건을 넣는다.
위와 같은 SQL문을 ANSI/ISO SQL 표준 방식으로 표현하면 아래와 같다.
SELECT 테이블1.칼럼명, 테이블2.칼럼명, ...
FROM 테이블1 INNER JOIN 테이블2
ON 테이블1.칼럼명1 = 테이블2.칼럼명2;
→ ON 절에 JOIN 조건을 넣는다.
[예제] 선수 테이블과 팀 테이블에서 선수 이름과 소속된 팀의 이름을 출력하시오
[예제]
SELECT PLAYER.PLAYER_NAME 선수명, TEAM.TEAM_NAME 소속팀명
FROM PLAYER, TEAM WHERE PLAYER.TEAM_ID = TEAM.TEAM_ID;
또는 INNER JOIN을 명시하여 사용할 수도 있다.
SELECT PLAYER.PLAYER_NAME 선수명, TEAM.TEAM_NAME 소속팀명
FROM PLAYER INNER JOIN TEAM
ON PLAYER.TEAM_ID = TEAM.TEAM_ID;
조인 조건에 맞는 데이터만 출력하는 INNER JOIN에 참여하는 대상 테이블이 N개라고 했을 때,
N개의 테이블로부터 필요한 데이터를 조회하기 위해 필요한 JOIN 조건은
대상 테이블의 개수에서 하나를 뺀 N-1개 이상이 필요하다.
즉, FROM절에 테이블이 3개가 표시 되어 있다면 JOIN 조건은 3-1=2개 이상이 필요하다.
3. Non EQUI JOIN
ㆍNon EQUI(비등가) JOIN은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용
ㆍNon EQUI JOIN의 경우, "=" 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들을 사용하여 JOIN을 수행하는 것
SELECT 테이블1.칼럼명, 테이블2.칼럼명, ...
FROM 테이블1, 테이블2
WHERE 테이블1.칼럼명1 BETWEEN 테이블2.칼럼명1 AND 테이블2.칼럼명2;
다음에는 표준 조인(STANDARD JOIN)에 관한 내용을 정리하여 포스팅하겠습니다.
'데이터베이스 > SQLD' 카테고리의 다른 글
[SQLD 도전기] SQL 활용(2) - 집합 연산자(SET OPERATOR) (0) | 2022.10.26 |
---|---|
[SQLD 도전기] SQL 활용(1) - 표준 조인(STANDARD JOIN) (0) | 2022.10.19 |
[SQLD 도전기] SQL 기본(7) - GROUP BY, HAVING 절 (0) | 2022.10.18 |
[SQLD 도전기] SQL 기본(6) - 함수(FUNCTION) (0) | 2022.10.18 |
[SQLD 도전기] SQL 기본(4) - TCL(Transaction Control Language) (0) | 2022.10.13 |
댓글