SQL 익히기 - JOIN서버/데이터베이스2024. 11. 11. 23:24
Table of Contents
JOIN
- JOIN 은 여러개의 테이블을 사용해서 새로운 테이블을 만드는 과정이다.
- JOIN 의 기본은 교집합을 만드는 것이다.
테스트를 위해 두가지 테이블을 만들어 두었다.
EQUI JOIN
- WHERE절을 통해 두 테이블에서 AGE가 같은 데이터만 JOIN 했다.
- 해시 조인을 사용한다.
- 해시 조인은 EQUI JOIN 만 가능하다.
SELECT *
FROM TEST,TEST3
WHERE test.age = test3.age
INNER JOIN
- WHERE로 JOIN 을 하는것은 오래된 구문이라고 한다.
- ISO 표준 SQL로 INNER JOIN 이 있다.
- INNER JOIN 은 ON문을 사용해서 테이블을 연결한다.
SELECT *
FROM TEST
JOIN TEST3 ON test.age = test3.age;
값은 똑같다.
- 나이 조건을 걸었다.
SELECT *
FROM TEST
JOIN TEST3 ON test.age = test3.age
AND TEST.AGE > 30
ORDER BY TEST.SAL
OUTER JOIN
- OUTER JOIN은 테이블간의 교집합과, 한쪽 테이블에만 있는 데이터도 포함시켜서 조회한다.
LEFT JOIN
- 두 테이블의 교집합과 첫번째(왼쪽) 테이블의 데이터를 모두 포함 시킨다.
SELECT T.NAME,T.AGE,T3.NAME,T3.AGE
FROM TEST T
LEFT JOIN TEST3 T3 ON T.AGE = T3.AGE
교집합은 위의 4개의 데이터지만,
왼쪽 테이블의 데이터가 모두 포함되었다.
그리고 교집합이 없는 부분은 NULL로 표시된다.
RIGHT JOIN
- 두 테이블의 교집합과 두번째(오른쪽) 테이블의 데이터를 모두 포함 시킨다.
SELECT T.NAME,T.AGE,T3.NAME,T3.AGE
FROM TEST T
RIGHT JOIN TEST3 T3 ON T.AGE = T3.AGE
정확히 반대로 교집합과 오른쪽(두번째) 테이블의 데이터를 모두 포함시켰다.
FULL JOIN
- LEFT와 RIGHT를 합친 FULL JOIN
SELECT T.NAME,T.AGE,T3.NAME,T3.AGE
FROM TEST T
FULL JOIN TEST3 T3 ON T.AGE = T3.AGE
CROSS JOIN
- 조건 없이 2개의 테이블을 하나로 조인한다.
- 두 테이블의 행을 곱집합 (Cartesian product)로 반환
- 모든 행의 조합을 반환한다.
SELECT t.name,t3.name from TEST t
CROSS JOIN TEST3 t3
INTERSECT 연산
- 두개의 테이블에서 공통된 값을 조회한다.
SELECT AGE FROM TEST
INTERSECT
SELECT AGE FROM TEST3
'서버 > 데이터베이스' 카테고리의 다른 글
SQL 익히기 - 형변환 / 내장 함수 (4) | 2024.11.13 |
---|---|
SQL 익히기 - 윈도우 함수(Window Function) (0) | 2024.11.13 |
SQL 익히기 - UNION / EXCEPT,MINUS (0) | 2024.11.12 |
SQL 익히기 - 기본 (0) | 2024.11.11 |
@데브준우 :: 개발초보 JW의 성장일기
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!