두 개 이상의 테이블들을 서로 연결하여 데이터를 검색할 때 처럼 사용하는 방법으로 두개의 테이블을 마치 하나의 테이블인것처럼 보여주는 것이다.
두개의 테이블에 하나라도 같은 컬럼이 있어야한다.
두 컬럼의 값은 공유되어야 한다.
보통 조인을 위해서 기본키(PK)와 외래키(FK)를 활용한다.
INNER JOIN , OUTER JOIN
JOIN은 크게 INNER JOIN , OUTER JOIN으로 나뉜다. 각각의 특징과 사용법에 대해 알아보자.
INNER JOIN은 각 테이블에서 조인 조건에 일치하는 데이터만 가져오며 교집합이라고도 한다.
OUTER JOIN은 조인 조건에 일치하는 데이터 및 일치하지 않는 데이터를 모두 SELECT하며 일치하는 데이터가 없다면 NULL값으로 가지고 온다.
OUTER JOIN은 INNER JOIN과 다르게 주(MAIN)테이블이 어떤 테이블인지가 중요하다. 테이블의 종류에 따라OUTER JOIN은
- LEFT OUTER JOIN : 왼쪽 테이블이 중심
- RIGHT OUTER JOIN : 오른쪽 테이블이 중심
- FULL OUTER JOIN : 양쪽테이블 모두가 중심
으로 세분할수 있다.
왼쪽 테이블이 기준이 된다.
조인 조건에 부합하는 데이터가 조인당하는 테이블(오른쪽)에 있으면 해당 데이터를 가지고 오고, 부재하면 NULL값으로 조회된다.
SELECT *
FROM SAWON LEFT OUTER JOIN LICENSE
오른쪽 테이블이 기준이 된다.
조인 조건에 부합하는 데이터가 조인당하는 테이블(왼쪽)에 있으면 해당 데이터를 가지고 오고, 부재하면 NULL값으로 조회된다.
SELECT *
FROM SAWON RIGHT OUTER JOIN LICENSE
양쪽 테이블 모두가 기준이 된다.
조인조건에 부합하는 데이터가 조인당하는 테이블에 있으면 해당데이터를, 부재하면 NULL값으로 조회된다.
SELECT *
FROM SAWON FULL OUTER JOIN LICENSE
SQL은 데이터베이스를 관리하기 위해 만들어진 프로그래밍 언어이며 , 데이터베이스를 관리해주는 대부분의 DBMS들은 SQL을 사용한다. 물론 DBMS자체의 특수성 때문에 SQL의 사용법이 조금씩 다르기도 하지만 큰 틀에선 나름대로의 보편성을 가지고있다. 이를 위해 국립표준협회( ANSI )에서도 SQL에 대한 보편적인 문법을 제시하고 있는데 그것이 바로 ANSI QUERY이다.