w3schools.com 을 참조하여 해석해본 자료입니다.
기본적으로 실행문의 결과값은 사이트에 직접가서 실행해보고 결과를 확인하는것이 좋습니다.
결과값이 너무 큰 경우 일부만 발췌하거나 기록하지 않았습니다.
The SQL UNION Operator
UNION 연산자는 두 개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다.
- UNION 내의 각 SELECT 문은 같은 수의 열을 가져야합니다.
- 열은 유사한 데이터 형식을 가져야합니다.
- 각 SELECT 문의 열은 같은 순서로 있어야합니다
UNION Syntax
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Syntax
UNION 연산자는 기본적으로 고유 값만 선택합니다. 중복 값을 허용하려면 UNION ALL을 사용하십시오.
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
참고 : 결과 집합의 열 이름은 일반적으로 UNION의 첫 번째 SELECT 문의 열 이름과 동일합니다.
Demo Database
이 튜토리얼에서는 잘 알려진 Northwind 샘플 데이터베이스를 사용합니다.
다음은 “Customers” 테이블에서 선택한 항목입니다:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
그리고 “Suppliers”테이블에서 선택한 항목입니다:
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly’s Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
SQL UNION Example
다음 SQL 문은 “Customers”및 “Suppliers”에서 나온 다른 모든 도시 (고유 한 값만)를 선택합니다.
Example
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER By City;
w3schools.com에서 직접 실행해볼것
참고 : 일부 고객 또는 공급 업체가 동일한 도시를 가지고있는 경우, UNION은 고유 한 값만 선택하기 때문에 각 도시는 한 번만 나열됩니다. UNION ALL을 사용하여 중복 값을 선택하십시오!
Result:(일부만 발췌)
Number of Records: 95
City |
---|
Aachen |
Albuquerque |
Anchorage |
Ann Arbor |
Annecy |
Barcelona |
Barquisimeto |
Bend |
Bergamo |
Berlin |
Bern |
Boise |
총 95개의 Record가 있음
SQL UNION ALL Example
다음 SQL 문은 “Customers” 와 “Suppliers”에서 모든 도시 (중복 값 포함)를 선택합니다.
Example
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
w3schools.com에서 직접 실행해볼것
Result:(일부만 발췌)
Number of Records: 122
City |
---|
Aachen |
Albuquerque |
Anchorage |
Ann Arbor |
Annecy |
Barcelona |
Barquisimeto |
Bend |
Bergamo |
Berlin |
Bern |
총 122개의 Record가 있음
SQL UNION With WHERE
다음 SQL 문은 “Customers” 와 “Suppliers”에서 독일내에 있는 모든 다른 도시 (유일한 값만)를 선택합니다.
Example
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
w3schools.com에서 직접 실행해볼것
Result:
Number of Records: 13
City | Country |
---|---|
Aachen | Germany |
Berlin | Germany |
Brandenburg | Germany |
Cunewalde | Germany |
Cuxhaven | Germany |
Frankfurt | Germany |
Frankfurt a.M. | Germany |
Köln | Germany |
Leipzig | Germany |
Mannheim | Germany |
München | Germany |
Münster | Germany |
Stuttgart | Germany |
SQL UNION ALL With WHERE
다음 SQL 문은 “Customers” 와 “Suppliers”에서 독일의 모든 도시 (중복 값 포함)를 선택합니다.
Example
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
w3schools.com에서 직접 실행해볼것
Result:
Number of Records: 13
City | Country |
---|---|
Aachen | Germany |
Berlin | Germany |
Brandenburg | Germany |
Cunewalde | Germany |
Cuxhaven | Germany |
Frankfurt | Germany |
Frankfurt a.M. | Germany |
Köln | Germany |
Leipzig | Germany |
Mannheim | Germany |
München | Germany |
Münster | Germany |
Stuttgart | Germany |
Another UNION Example
다음 SQL 문은 모든 customers와 suppliers를 나열합니다:
Examples
SELECT 'Customer' As Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
w3schools.com에서 직접 실행해볼것
Result:(일부만 발췌)
Number of Records: 98
Type | ContactName | City | Country |
---|---|---|---|
Customer | Juan | Aachen | Germany |
Customer | Juan | Albuquerque | USA |
Customer | Juan | Anchorage | USA |
Customer | Juan | Barcelona | Spain |
Customer | Juan | Barquisimeto | Venezuela |
Customer | Juan | Bergamo | Italy |
Customer | Juan | Bern | Switzerland |
Customer | Juan | Boise | USA |
Customer | Juan | Brandenburg | Germany |
Customer | Juan | Bruxelles | Belgium |
총 98개의 Record가 있음
Comments