개발자인 친구와 SQL에 대해서 얘기하던 중 JOIN과 UNION(집합 연산자)의 차이를 아냐고 질문해왔다.
UNION이 어떤 함수였는지 조차 기억이 잘 나지 않는 나로선 당연히 대답할 수 없다. (아직 많이 부족하구나 느끼는 순간이었다 ㅜㅜ)
결론부터 말하자면 JOIN UNION 을 사용하면 테이블의 데이터를 결합할 수 있지만, 데이터를 결합하는 방식에서 차이가 난다고 할 수 있다. (친구의 말을 빌리면 JOIN은 데이터? 테이블?의 차원을 늘리지만 UNION은 그렇지 않다고 한다.)
차원이 줄고 늘고가 어떤 느낌인지는 알겠으나 정확히는 모르겠다.
- AGGREGATION(집합) 함수는 차원을 없애나..?
- WINDOW 함수는 차원을 어떻게 바꾸지..?
JOIN
- 열(coulmn, field)이 늘어난다. (수평으로 데이터 추가)
- '조인 조건'을 충족해야 한다. Table 1, Table 2의 열(속성)이 일치할 때 행이 만들어진다. (완전 일치는 X, 한개 이상 겹치는 부분이 있어야 함)
- 결합하려는 테이블들이 유사하지 않아도 결합할 수 있다.
- 두 테이블의 속성이 먼저 결합 후 결과 테이블을 출력 (하나의 쿼리)
- 여러 테이블에 저장된 데이터를 원하는 방식대로 한 번에 조회할 때 유용하다.
- 정규화 해제(denormalization)의 결과
UNION
- 행(row)이 늘어난다. (수평으로 데이터 추가)
- 조인 조건을 충족하지 않아도 사용 가능하다.
- (JOIN은 서로 다른 여러 테이블의 데이터를 결합하는 반면) UNION은 유사한 여러 테이블의 데이터를 결합한다. (필드명이 다르면 결합하기가 애매)
- 여러 쿼리의 결과 테이블을 결합한다. (쿼리문이 여러개)
- 주로 같은 속성의 값을 나열할 때 사용
Difference Between JOIN and UNION in SQL (with Comparison Chart) - Tech Differences
Difference Between JOIN and UNION in SQL (with Comparison Chart) - Tech Differences
The JOIN clause combines the tuples of two relations whereas, UNION clause combines the result of two queries. Let us discuss the difference between JOIN and UNION with the help of comparison chart shown below.
techdifferences.com
What Is the Difference Between a Join and UNION (essentialsql.com)
What Is the Difference Between a Join and UNION
Both Joins and UNIONS can be used to combine data from two or more tables. Read this article to find out each command’s strengths and when to use them.
www.essentialsql.com
SQL JOIN과 집햡연산자 질문입니다. : 지식iN (naver.com)
SQL JOIN과 집햡연산자 질문입니다.
SQL JOIN과 집햡연산자 질문입니다.JOIN 이나 집합연산자 (UNION, UNION ALL 등등)는 두 개 이상의 테이블에서연관된 데이터를 조회하는 방법인데요조인은 언제사용하...
kin.naver.com
'SQL' 카테고리의 다른 글
[SQL-G]'CASE' + 집계함수(Aggregate Functions) (0) | 2020.11.30 |
---|