SQL 연결


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL 함수
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL 별명
SQL 연결
SQL 외부연결
SQL Subquery
SQL UNION
SQL UNION ALL
SQL INTERSECT
SQL MINUS
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM


사이트안내




  SQL > SQL인스트럭션 > 연결

지금 우리는 연결(join)의 개념을 소개합니다. 연결에 대해 이해하려면 전에 소개한 인스트럭션들을 많이 사용해야 합니다. 먼저 우리에게 아래와 같은 두개의 도표가 있다고 가설합니다,

Store_Information 도표
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Geography 도표
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

우리는 매개 지역 (Region_Name) 의 영업액 (Sales) 을 알아야 합니다. Geography 이 도표는 우리에게 매개 지역에 어떤 점포가 있다는것을 알려주고 Store_Information 는 우리에게 매개 점포의 영업액을 알려줍니다. 매개 지역의 영업액을 알려면 부동한 두 도표중의 데이터를 연결하여야 합니다. 이 두 도표를 파악하면 그들이 같은 필드, Store_Name 를 통하여 연결되였음을 알수 있습니다. 먼저SQL 절을 열거한후 매개절의 의의를 토론합니다:

SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;

결과:

REGION SALES
East 700
West 2050

첫줄에서 우리는SQL에게 두개의 필드를 선택하게 하였습니다. 첫번째 필드는 Geography 도표중의 Region_Name 필드이고(별명은 REGION); 두번째 필드는 Store_Information 도표중의 sales 필드 (별명은SALES)입니다. 여기서 우리가 도표 별명을 사용하였음을 주의 해야 합니다. Geography 도표의 별명은 A1, Store_Information 도표의 별명은 A2. 만약 별명을 사용하지 않았을 경우 첫번째 줄은 변합니다,

SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES

이렇게 되면 많이 복잡해집니다. 여기서 우리는 도표 별명의 기능을 알수 있습니다. 이런 별명들이 있음으로 하여SQL 어구를 더욱 쉽게 이해할수 있습니다.특히 SQL 어구가 여러개의 부동한 도표를 포함하고 있을때.

계속하여 세번째 줄인 WHERE 절을 봅시다. 이것은 우리가 연결조건을 서술하는 곳입니다. 여기서 우리는 Geography 도표중의 Store_Name 필드의 수치와 Store_Information 도표중 Store_Name 필드의 수치가 같다는것을 확인하여야 합니다. 이 WHERE 절,가 연결영혼으로 될수 있는것은 두 도표사이 연결의 정확 여부를 확정하기 때문입니다. 만약 WHERE 절이 잘못된 것이라면 우리는 하나의 데카르트연결 (Cartesian join)을 얻을 가능성이 높습니다. 데카르트 연결로 인해 우리는 전체 두개 도표의 매 두줄사이 모든 가능한 조합을 얻게됩니다. 이 예에서 데카르트 연결로 인해 우리는 4 x 4 = 16 줄의 결과를 얻게 됩니다.

SQL 외부연결 >>



Copyright © 2014   1keydata.com   All Rights Reserved