일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 암호화
- TO_DATE
- JVM
- select
- controller
- Oracle
- web.xml
- spring
- POI
- 태그
- array
- json
- eGov
- Ajax
- mybatis
- html
- 정의
- 과정평가형
- 함수
- jQuery
- sql
- Java
- CSS
- 오류
- input
- was
- eGovFramework
- 개념
- javascript
- jsp
- Today
- Total
web developer
[sql] JOIN 정리 본문
1. JOIN
JOIN이란, 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미한다.
2. INNER JOIN
일반적으로 JOIN이라 하면, INNER JOIN을 지칭하는 것이다.
* INNER JOIN은 조인될 조건이 부합하는 행에 대해서만 JOIN이 발생하는 것이다.
* 둘 테이블에 공통으로 해당되는 컬럼에 대해서는 테이블명.칼럼명 형태로 작성해야 한다.
SELECT 열 목록
FROM 첫 번째 테이블
INNER JOIN 두 번째 테이블
ON 조인될 조건
WHERE 검색조건
3. OUTER JOIN
INNER JOIN은 JOIN 조건에 부합하는 행만 JOIN이 발생하는 반면에, OUTER JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합한 결과
즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있다.
SELECT 열 목록
FROM 첫번째 테이블 (LEFT 테이블)
[LEFT | RIGHT | FULL] OUTER JOIN 두번째 테이블 (RIGHT 테이블)
ON 조인될 조건
WHERE 검색 조건
4. LEFT OUTER JOIN
조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.
즉, FROM 첫번째 테이블 LEFT OUTER JOIN 두번째 테이블이라면?
기준 테이블인 첫번쨰 테이블의 컬럼은 다 출력되어지는 반면에, 두번쨰 테이블은 해당 컬럼이 없으면 NULL로 출력되는 결과를 가져온다.
select *
from A a left outer join B b
on a.name = b.name;
5. RIGHT OUTER JOIN
조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.
select *
from A a right outer join B b
on a.name = b.name;
--right outer join
select *
from B b left outer join A a
on a.name = b.name;
-- 기준 테이블을 반대로 한 경우
-- left outer join
6. FULL OUTER JOIN
LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다.
즉, 한쪽을 기준으로 조건과 일치하지 않는 것을 출력하는 것이 아니다. 따라서, 테이블들의 모든 행이 조건에 관계없이 결합된다.
SELECT 검색할 컬럼
FROM 테이블명 FULL OUTER JOIN 테이블명2
ON 테이블.컬럼명 = 테이블2.컬럼명;
'SQL > Oracle SQL' 카테고리의 다른 글
[sql] comment 코멘트 생성/수정/조회하기 (oracle) (0) | 2022.04.05 |
---|---|
[sql/oracle] TO_DATE, TO_CHAR 비교 / 오류 원인(ORA-10858, ORA-01481) (0) | 2022.03.04 |
[sql] RANK, DENSE_RANK, ROW_NUMBER 함수 (0) | 2022.01.10 |
[sql] DECODE 함수 (0) | 2022.01.10 |
[sql] INSTR 함수 (0) | 2022.01.07 |