뇨내

[Oracle-SQL Developer] JOIN 본문

Oracle/Join + View + Pseudo

[Oracle-SQL Developer] JOIN

삐옥 2021. 12. 8. 22:36

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

JOIN 조인

 

1. 단순 조인, CROSS JOIN, 카티션곱(데카르트곱)

SELECT 컬럼리스트 FROM 테이블A CROSS JOIN 테이블B;

 


2. 내부 조인, INNER JOIN★★★★★

SELECT 컬럼리스트 FROM 테이블A INNER JOIN 테이블B ON 테이블A.PK = 테이블B.FK; > ANSI-SQL

SELECT 컬럼리스트 FROM 테이블A, 테이블B WHERE 테이블A.PK = 테이블B.FK;                > Oracle

 


3. 외부 조인, OUTER JOIN★★★★★

SELECT 컬럼리스트 FROM 테이블A (LEFT|RIGHT) OUTER JOIN 테이블B ON 테이블A.컬럼 = 테이블B.컬럼;

 


4. 셀프 조인, SELF JOIN

- 1개의 테이블을 사용해서 조인
- 테이블이 스스로 관계를 맺는 경우에 사용
- 셀프조인 + 내부조인
- 셀프조인 + 외부조인

 


5. 전체 외부 조인, FULL OUTER JOIN

SELECT 컬럼리스트 FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.PK = 테이블B.FK;

 

조인, JOIN
- (서로 관계를 맺은) 2개(1개) 이상의 테이블의 내용을 가져와서 1개의 결과셋을 만드는 작업

조인의 종류
1. 단순 조인, CROSS JOIN, 카티션곱(데카르트곱)
2. 내부 조인, INNER JOIN★
3. 외부 조인, OUTER JOIN
4. 셀프 조인, SELF JOIN
5. 전체 외부 조인, FULL OUTER JOIN

 

 


 

 

 

CROSS JOIN

 

SELECT 컬럼리스트 FROM 테이블A CROSS JOIN 테이블B;

 

1
2
3
4
5
select * from tblMember;     
select * from tblMovie;   
 
select * from tblMembercross join tblMovie; 
 
cs

 

 

 

INNER JOIN

 

SELECT 컬럼리스트 FROM 테이블A INNER JOIN 테이블B ON 테이블A.PK = 테이블B.FK; 

 

1
2
-- 고객의 정보(tblMember)와 판매내역(SalesList)을 가져오기
select * from tblMember m inner join SalesList s on c.seq = s.cseq;
cs

 

 

 

OUTER JOIN

 

SELECT 컬럼리스트 FROM 테이블A (LEFT|RIGHT) OUTER JOIN 테이블B ON 테이블A.컬럼 = 테이블B.컬럼;

 

 

1
2
3
4
5
6
7
8
-- 구매 이력과 무관하게 모든 고객과 판매 정보를 같이 가져오시오.
select * from Customer c 
    left outer join SalesList s
        on c.seq = s.cseq;
 
select * from Customer c 
    right outer join SalesList s
        on c.seq = s.cseq;
cs

 

 

 

 

SELF JOIN

 

1
2
3
4
5
6
7
8
9
-- 직원 명단을 가져오시오.(단, 상사의 이름도 같이)
-- select * from 직원테이블 inner join 상사테이블 on 직원테이블.super = 상사테이블.seq;
select 
    a.name as "직원명",
    b.name as "상사명"
from tblSelf a 
    inner join tblSelf b 
        on a.super = b.seq
            order by a.seq asc;
cs

 

 

 

 

FULL OUTER JOIN

 

SELECT 컬럼리스트 FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.PK = 테이블B.FK;

 

1
2
3
select * from Men m
    full outer join Women w
        on m.seq = w.seq;
cs

 

 

 

 

 

 

 


 

 

 

'Oracle > Join + View + Pseudo' 카테고리의 다른 글

[Oracle-SQL Developer] Pseudo Column  (0) 2021.12.11
[Oracle-SQL Developer] View  (0) 2021.12.09
Comments