SQL

MS SQL 실무_5편

Mara7 2022. 6. 15.
반응형
LIST

테이블 조합과 결합

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의 핵심

반응형
LIST

'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

댓글