MSSQL

테이블 연결(INNER JOIN)

eloyb 2024. 11. 13. 22:44

데이터베이스는 테이블들로 구성되어 있고, 각 테이블들은 조인을 통해서 서로 연결할 수 있습니다. 테이블들을 조인하는 방법 중에서 가장 보편적인 방법은 기본키와 외래키를 이용한 INNER JOIN 방법이 있고, 이외에도 일대일(One to One) 조인 다대다(Many to Many) 조인 방법도 있습니다. 조인에 대한 방법은 데이터분석과 설계 부분에서 이미 설명드렸으니 궁금하신 분들은 그 부분을 참고해 주세요.

테이블을 조인하는 가장 일반적인 방법은 INNER JOIN 입니다. 학생들과 수업의 관계를 생각해 보면 학교에 입학을 했지 만 아직 수업에 등록을 하지 않은 학생이 있을 수 있습니다. 쇼핑몰을 예로 들면 회원 가입을 했지만 아직 한번도 물건을 주문 안한 고객이 있을 있습니다. 경우 INNER JOIN 사용하게 되면 주문이 이상 이루어진 고객만 출력이 되 게 됩니다.

 

별칭(Alias) 사용

 

테이블 사이의 연결에 대해 설명하기 전에 먼저 별칭(Alias) 사용에 대해 설명을 드릴까 합니다. 테이블 간에 연결은 2개의 테이블만 연결이 될 수도 있고 많게는 10개 이상의 테이블을 연결해야 하는 경우도 있습니다. 이럴 경우 복잡해지는 테이 블과 컬럼명으로 인해서 보기가 힘들어지게 되고, 길어지는 코드의 양 때문에 구문을 작성하기도 힘들어 지게 됩니다. 이 경우 별칭을 사용하면 코드의 길이를 줄일 수도 있고, 가독성이 향상되게 됩니다. 별칭은 컬럼에도 사용할 있고, 테이블 에도 사용할 수 있습니다.

그러면 별칭을 사용하는 방법에 대해 알아보도록 하겠습니다.

위의 Customers 테이블을 보면 FirstName LastName으로 성과 이름이 구분되어 입력되어 있습니다. 데이터를 출력할 때 보통 이렇게 성과 이름을 구분해서 출력하는 경우는 거의 없습니다. 컬럼에는 구분되어 있지만 실제 출력시에는 두개의 컬럼을 합쳐서 한개의 컬럼처럼 표시하는 것이 좋습니다. 이럴 경우 별칭(Alias)을 이용해서 두개의 컬럼을 하나의 컬럼처럼 표시해 줄 수 있습니다.

SELECT FirstName + ' ' + LastName As Names FROM Customers

위와 같이 코드를 작성하게 되면 As 컬럼명 처럼 As 뒤에 나오는 별칭이 새로운 컬럼명으로 지정되게 됩니다.

SELECT (FirstName + ' ' + LastName + ' ' + ZipCode + ' ' + PhoneNumber) As Information FROM Customers

위의 결과는 4개의 컬럼을 합쳐서 한개의 컬럼에 나타나도록 했고 별칭은 Information 사용한 경우입니다. 테이블에 별칭을 사용한 예는 JOIN에 대한 설명을 하면서 같이 다루도록 하겠습니다.

INNER JOIN(내부 조인)

가장 보편적으로 테이블간에 연결을 하는 방법이 Inner Join 입니다.

SELECT (Distinct) Column, Column, Column FROM 첫번째 Table Name

INNER JOIN 두번째 Table Name ON 조인 조건

WHERE 검색 조건

 

 

 

 

 

'MSSQL' 카테고리의 다른 글

데이터베이스 조인(UNION)  (2) 2024.11.15
외부조인  (0) 2024.11.14
데이터 검색(여러 조건)  (0) 2024.11.12
데이터 검색(WHERE)  (2) 2024.11.11
데이터베이스 분석과 설계  (2) 2024.11.10