Join 이란? 테이블 간의 결합, 집합과 유사하다.
교집합
Inner Join
Left Join
Right Join
Outer Join
합집합
Union (All)
차집합
Minus(oracle) = Except(SQL server)
결합되는 대상간의 일치정도
Equi 조인 <> Non-Equi 조인
조건구 없는 Cross Join
1.Inner Join
Select table1.*, table2.col1
From table1 A Inner Join table2 B
On A.col1 = B.col1;
==
Select A.table,B.table
From table1 A, table2 B
Where A.col1 = B.col1
Inner Join - Join 후 특정 행만 호출할 때
Select table1.*, table2.col1
From table1 A Inner Join table2 B
On A.col1 = B.col1;
Where A.col2 = "특정 행(Row) 값";
==
Select A.*,B.col2
From table1 A, table2 B
Where A.col1 = B.col1
And A.col2 = "특정 행(Row) 값";
Inner Join - 3개 이상의 테이블을 Join 할 때
Select A.* B.col2, C col2
From table A Join table B On A.col1= B col1
Join table C On B col2 = C col2;
2.Left Join
Select A.*, B.col1
From table1 A Left Join table2 B
On A.col1 = B.col1;
==
Select A.* B col1
From table1 A, table2 B
Where A.col1 = B.col1 (+)
*(+) = 해당 테이블 속성값에 대해 NULL을 허용한다.
3. Right Join
Select A.*, B.col1
From table1 A Right Join table2 B
On A.col1 = B.col1;
==
Select A.* B col1
From table1 A, table2 B
Where A.col1 = B.col1 (+)
**(+) = 해당 테이블 속성값에 대해 NULL 을 허용한다.
4. Outer Join
Select A.*, B.col1
From table1 A Full Outer Join table2 B
On A.col1 = B.col1;
==
Select A.* B col1
From table1 A, table2 B
Where A.col1(+) = B.col1 (+)
***(+) = 해당 테이블 속성값에 대해 NULL 을 허용한다.
>> Oracle 9부터 양쪽 (+) 가능
5. Union, Union ALL
동일한 칼럼개수와 데이터 타입을 가진 두 테이블에서만 합쳐지고 사용가능하다.
Select * From q1
Union
Select * From q2;
중복된 레코드 제거되고 합쳐진다.
Select * From q1
Union ALL
Select * From q2;
중복된 레코드 제거 안되고 합쳐진다.
'SQL' 카테고리의 다른 글
SQLD 시험 대비 - 과목 1 정리 ( 최종 ) (0) | 2023.03.17 |
---|---|
SQLD 시험 대비 - Group By, Join (3) (2) | 2023.03.16 |
SQLD 시험 대비 - Group By, Join (1) (0) | 2023.03.16 |
SQLD 시험 대비 - SQL 활용편(3) (0) | 2023.03.08 |
SQLD 시험 대비 - SQL 활용편(3) (0) | 2023.03.08 |