테이블 조합과 결합
1. 조인의 이해
연결할 모든 테이블을 지정하고 서로 연결될 방식을 지정
- 연결하고자 하는 두 테이블은 서로 같은 정의의 열을 가지고 있어야함
- 조인할 테이블을 join으로 정의하고 그 기준이 되는 열을 on으로 지정
- 하나의 열로 할 수도 있고 여러 열을 기준으로 할 수도 있음
select Companyinfo.Name
, Stockprice.Date_
, Stockprice.Close_
from companyinfo
join stockprice
on companyinfo.id=stockprice.ID
-> 주식가격과 기업의 정보를 연결
-> 기업의 고유 코드 ID가 두 테이블에 모두 존재하므로 이를 기준으로 조인
select c.Name
, S.Date_
, S.Close_
From companyinfo C
join StockPrice S
on C.ID = S.ID
-> Alias 를 지정해 간단하게 작성할 수 있음
2. join의 종류
Inner Join (기본)
- 두 테이블에 모두 존재하는 행을 기준으로 결합
Left Join
- 왼쪽 테이블의 모든 레코드는 일단 가져오고, 일치하는 오른쪽 레코드를 붙여줌
- 오른쪽 테이블에 데이터가 없으면 null(비어 있음)을 채움
Right Join
- left join과 같지만 오른쪽 테이블 기준
- 실무에서 사용 잘 안함
Full outer join
- 양쪽의 모든 레코드를 가져오고 일치하지 않는 부분은 null로 채움
- 모든 조합을 일단 다 감안함.
- 두 테이블로 나올 수 있는 모든 경우의 수로 연결한 다음 조건을 찾아 나가는 형식
0 join과 left join, right join의 결과를 모두 합친 결과
select C.Name
,C.IND_ID
,I.IND_Name
from companyinfo C
Left join IndustryInfo I
On C.IND_ID=I.IND_ID
select C.Name
,C.IND_ID
,I.IND_Name
from companyinfo C
full join IndustryInfo I
On C.IND_ID=I.IND_ID
join을 중첩하는 syntax
- join은 계속 중첩해서 사용할 수 있음
- 문법은 특별히 달라지는게 없고 join을 연속해서 계속 사용하기만 하면 됨
데이터를 제공해주는 업체가 다른 경우에, 각자의 방식으로 기업코드 정의 가능
-> 데이터를 연결하는 MAPPING 테이블이 존재
select C.Name
,C.IND_ID
,D.FIN_ID
,D.Description
from companyinfo C
JOIN IDMap I
On C.ID = I.ID
join Descriptions D
On I.FIN_ID = D.FIN_ID
Join구문
- 관계형 데이터베이스가 주류가 되도록 만든 주역
- 데이터 성격별로 테이블을 따로 구분하고 합칠 때는 join 을 사용하여 원하는 형태로 보여주는 방식이 RDB의 핵심
'SQL' 카테고리의 다른 글
MS SQL 실무_6편 (0) | 2022.06.21 |
---|---|
MS SQL 실무_4편 (0) | 2022.06.06 |
MS SQL 실무_3편 (0) | 2022.05.29 |
MS SQL 실무_2편 (0) | 2022.05.21 |
MS SQL 실무1 (0) | 2022.05.14 |
댓글