UNION으로 합집합을 구하는 것은 세로 방향으로 데이터가 커졌다면, 결합(JOIN)은 가로(열)방향으로 데이터가 커지게 된다.
곱집합
각 집합의 요소가 모두 만나는 경우의 수를 계산하는 것으로, 예를 들어 1시즌에 6개의 드마를 방영되는 드라마가 있을 때, 3시즌 동안 방영되는 경우를 구해 보자
시즌 = {1, 2, 3}
회차 = {1, 2, 3, 4, 5, 6}
드라마 곱집합 = {{1,1}, {1,2}, {1,3}, {1,4}, ... , {3,5}, {3,6}}
총 18개의 경우를 계산하게 된다.
예제
PRIMERY KEY
기본키라고 부르며, 기본키는 중복이 없고, NULL값이 없다는 성질을 가지고 있다. 따라서 기본키는 하나의 데이터 행을 대표할 수 있는 속성을 가지게 된다.
WHERE을 사용한 내부결합
SELECT * FROM products,stock WHERE products.code=stock.code
SELECT {열} FROM {기준 테이블} INNER JOIN {결합 테이블} ON {결합조건} WHERE {조건}
SELECT * FROM products INNER JOIN stock ON products.code=stock.code;
FORIEGN KEY(외부키)
다른 테이블의 기본키를 참조하는 열이 외부키가 된다. 외부키는 기본키는 아니며, 중복으로 가질 수 있다.
예제
SELECT products.code, products.name, stock.num_of_stocks FROM products INNER JOIN stock ON products.code=stock.code WHERE products.category="food";
SELECT products.code, products.name, stock.num_of_stocks FROM products LEFT JOIN stock ON products.code=stock.code WHERE products.category="food";
기준이였던, products에 조건이 맞는 food들을 가져 왔으며, code 0009는 결합하는 외부테이블에 값이 존재하지 않기 때문에 Null로 표시