UNION ALL과 OUTER JOIN을 비교하면, UNION ALL은 행의 합집합, OUTER JOIN은 열의 합집합 이라고 볼 수 있다.
OUTER JOIN은 흔히 사용하듯, 어떤 키가 되는 값으로 join 해서 서로다른 테이블을 연결하고 컬럼을 확장하는 것이다. 예를들어보자.
1. OUTER JOIN
TB_STUEDENT
-------------------
id | name | age
-------------------
kim | 김씨 | 20
------------------
TB_GRADE
-------------------
id | class | grade
-------------------
kim | 수학 | A
-------------------
위와같이 TB_STUEDENT, TB_GRADE 두 개의 테이블이 있다고 할때, id 컬럼으로 이 테이블을 join 하면 아래와 같은 결과를 얻을 수 있다.
---------------------------------
id | name | age | class | grade
---------------------------------
kim | 김씨 | 20 | 수학 | A
---------------------------------
즉 서로 다른 테이블들의 colume들을 모아서 볼 수 있다.
이번엔 UNION ALL을 보자.
2. UNION ALL
TB_STUEDENT
-------------------
id | name | age
-------------------
kim | 김씨 | 20
------------------
TB_TEACHER
-------------------
id | name | age
-------------------
LEE | 이씨 | 40
------------------
위의 TB_STUEDENT 테이블과 TB_TEACHER 테이블을 UNION ALL 하면 결과는 아래와 같다.
-------------------
id | name | age
-------------------
kim | 김씨 | 20
LEE | 이씨 | 40------------------
즉 서로 다른 테이블들의 row를 하나로 합쳐서 보여준다.
추가로, JOIN에서 INNER JOIN, OUTER JOIN이 있듯, UNION ALL 외에도 UNION이 있다.
UNION ALL과 UNION의 차이는, UNION ALL은 두 테이블의 ROW들을 단순히 합쳐서 보여주는것인 반면에, UNION을 사용하면 ROW들 중 값이 중복되는 ROW들은 제거하고 보여준다는 점에서 다르다.
'JAVA 웹 개발자 실전 면접문제' 카테고리의 다른 글
(자바) final은 어디에 붙어서 어떤 역할을 하는가? (0) | 2017.09.25 |
---|---|
(이론문제) 암호화 알고리즘에 대해 설명해보라 (0) | 2017.08.21 |
(경험문제) 당신이 겪은 가장 어려웠던 개발 경험은? (0) | 2017.08.16 |