UNION과 UNION ALL은 여러 테이블의 결과 집합을 결합하기 위해 데이터베이스에서 사용되는 가장 필수적인 두 가지 SQL 연산자입니다. 이러한 연산자를 사용하면 여러 SELECT 쿼리를 사용하고 원하는 결과를 검색한 다음 이를 최종 출력으로 결합할 수 있습니다. . 이번 글에서는 이들이 서로 어떻게 다른지 살펴보겠습니다. 비교하기 전에 이러한 연산자에 대해 간략하게 논의하겠습니다.
쉐타 티와리 배우
Union 연산자란 무엇입니까?
MySQL의 Union 연산자를 사용하면 여러 SELECT 쿼리의 두 개 이상의 결과를 단일 결과 집합으로 결합할 수 있습니다. 기본 기능이 있습니다 중복 행을 제거 테이블에서. 이 연산자 구문은 항상 첫 번째 SELECT 문의 열 이름을 출력의 열 이름으로 사용합니다.
MySQL 노동조합은 다음 기본 규칙을 따라야 합니다.
- 모든 쿼리에서 열의 수와 순서는 동일해야 합니다.
- 각 선택 쿼리의 해당 열 위치에는 호환 가능한 데이터 유형이 있어야 합니다.
- 서로 다른 SELECT 쿼리에서 선택한 컬럼 이름의 순서는 동일해야 합니다.
- 첫 번째 SELECT 쿼리의 열 이름은 출력의 열 이름이 됩니다.
참고: Union과 Join이 다르다는 것을 알아야 합니다.
- JOIN은 여러 다른 테이블의 데이터를 결합하는 반면 UNION은 여러 유사한 테이블의 데이터를 결합합니다.
- JOIN은 출력을 가로로 추가하는 반면 UNION은 결과 집합을 세로로 결합합니다.
아래의 시각적 표현은 이를 보다 명확하게 설명합니다.
Union 연산자에 대한 자세한 내용을 보려면 여기를 클릭하십시오.
유니온올이란 무엇인가요?
UNION ALL 연산자는 여러 SELECT 쿼리의 두 개 이상의 결과를 결합하고 모든 레코드를 단일 결과 집합으로 반환합니다. SELECT 문의 출력에서 중복 행은 제거되지 않습니다.
다음의 시각적 표현을 통해 이해할 수 있습니다.
Union 대 Union All 연산자
다음 비교표에서는 주요 차이점을 빠르게 설명합니다.
노동 조합 | 유니온 올 |
---|---|
여러 테이블의 결과 집합을 결합하고 고유한 레코드를 반환합니다. 단일 결과 세트로 변환합니다. | 여러 테이블의 결과 집합을 결합하고 모든 레코드를 반환합니다. 단일 결과 세트로 변환합니다. |
다음은 기본이다 통사론 UNION 연산자: table1에서 컬럼_목록 선택 노동 조합 table2에서 열 목록을 선택합니다. | 다음은 기본이다 통사론 UNION ALL 연산자: table1에서 컬럼_목록 선택 유니온 올 table2에서 열 목록을 선택합니다. |
출력에서 중복 행을 제거하는 기본 기능이 있습니다. | 출력에서 중복 행을 제거하는 기능은 없습니다. |
그것은 성능이 느리다 중복된 기록을 찾아 제거하는 데 시간이 걸리기 때문입니다. | 그것은 성능이 빠르다 중복된 행을 제거하지 않기 때문입니다. |
대부분의 데이터베이스 사용자는 이 연산자를 선호합니다. | 대부분의 데이터베이스 사용자는 이 연산자를 사용하는 것을 선호하지 않습니다. |
Union 및 Union All 예
예를 통해 Union과 Union All 연산자의 차이점을 이해해 보겠습니다. '라는 이름의 테이블이 있다고 가정해 보겠습니다. 학생 ' 그리고 ' 학생2 '에는 다음 데이터가 포함되어 있습니다.
표: 학생
표: 학생2
다음 SQL 문은 도시의 고유한 이름 UNION 쿼리를 사용하여 두 테이블 모두에서:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
위의 명령문을 실행한 후 Union 연산자가 고유한 값만 반환하기 때문에 아래 출력을 얻게 됩니다.
다음 SQL 문은 다음을 반환합니다. 중복된 도시를 포함한 모든 도시 이름 UNION ALL 쿼리를 사용하여 두 테이블 모두에서 다음을 수행합니다.
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
위 명령문을 실행한 후 Union All 연산자가 고유 값을 제거하지 않고 전체 레코드를 반환하기 때문에 아래 출력을 얻게 됩니다.