SQL UNION ve UNION ALL operatörleri

SQL UNION operatörü

UNION operatörü, iki veya daha fazla SELECT cümlesinin sonuç kümesini birleştirmek için kullanılır.

Lütfen dikkat edin, UNION içındaki SELECT cümlesi aynı sayıda sütun olmalıdır. Sütunlar aynı veri türüne sahip olmalıdır. Ayrıca, her SELECT cümlesindeki sütunların sırası aynı olmalıdır.

SQL UNION Grameri

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Açıklama:Öntanımlı olarak, UNION operatörü farklı değerleri seçer. Tekrarlanan değerlere izin vermek için UNION ALL kullanın.

SQL UNION ALL Grameri

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

Ayrıca, UNION sonuç setindeki sütun adları her zaman UNION içindeki ilk SELECT ifadesindeki sütun adlarına eşittir.

Aşağıdaki örnekte kullanılan temel tablolar:

Employees_China:

E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

UNION komutunu kullanarak

Örnek

Çin ve ABD'deki tüm farklı çalışan adlarını listele:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Sonuç

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

Açıklama:Bu komut Çin ve ABD'deki tüm çalışanları listelemek için yetmez. Yukarıdaki örnekte, aynı isimdeki iki çalışan var ve sadece biri listelendi. UNION komutu sadece farklı değerleri seçer.

UNION ALL

UNION ALL komutu ve UNION komutu neredeyse eşdeğerdir, ancak UNION ALL komutu tüm değerleri listeler.

SQL Statement 1
UNION ALL
SQL Statement 2

UNION ALL komutunu kullanarak

Örnek:

Çin ve ABD'deki tüm çalışanları listele:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Sonuç

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill