UNION ve UNION ALL, birden fazla tablodan alınan sonuç kümesini birleştirmek için veritabanında kullanılan en önemli iki SQL operatörüdür. Bu operatörler birden fazla SELECT sorgusu kullanmamıza, istenen sonuçları almamıza ve ardından bunları nihai bir çıktıda birleştirmemize olanak tanır. . Bu yazıda birbirlerinden nasıl farklı olduklarını göreceğiz. Karşılaştırma yapmadan önce bu operatörlerden kısaca bahsedeceğiz.
Birlik operatörü nedir?
MySQL'deki Union operatörü, birden fazla SELECT sorgusundan iki veya daha fazla sonucu tek bir sonuç kümesinde birleştirmemize olanak tanır. Varsayılan bir özelliği vardır yinelenen satırları kaldır masalardan. Bu operatör sözdizimi, çıktının sütun adları olarak her zaman ilk SELECT deyimindeki sütunun adını kullanır.
MySQL Birlik şu temel kurallara uymalıdır:
- Tüm sorgularda sütunların sayısı ve sırası aynı olmalıdır.
- Her seçme sorgusunun karşılık gelen sütun konumu, uyumlu bir veri türüne sahip olmalıdır.
- Farklı SELECT sorgularında seçilen sütun adı aynı sırada olmalıdır.
- İlk SELECT sorgusunun sütun adı, çıktının sütun adları olacaktır.
NOT: Union ve join'in farklı olduğunu bilmemiz gerekir.
- JOIN birden çok farklı tablodaki verileri birleştirir, oysa UNION birden çok benzer tablodaki verileri birleştirir.
- JOIN çıktıyı yatay olarak eklerken UNION sonuç kümesini dikey olarak birleştirir.
Aşağıdaki görsel temsil bunu daha açık bir şekilde açıklamaktadır:
Union operatörü hakkında daha fazla bilgi okumak için burayı tıklayın.
Hepsi Birlik nedir?
UNION ALL operatörü, birden çok SELECT sorgusundan iki veya daha fazla sonucu birleştirir ve tüm kayıtları tek bir sonuç kümesine döndürür. SELECT deyimlerinin çıktısından yinelenen satırları kaldırmaz.
Aşağıdaki görsel anlatımla bunu anlayabiliriz.
Union ve Union Tüm Operatörler
Aşağıdaki karşılaştırma tablosu temel farklarını hızlı bir şekilde açıklamaktadır:
BİRLİK | BİRLİK TÜMÜ |
---|---|
Birden fazla tablodan elde edilen sonuç kümesini birleştirir ve farklı kayıtları döndürür tek bir sonuç kümesine dönüştürür. | Birden fazla tablodan elde edilen sonuç kümesini birleştirir ve tüm kayıtları döndürür tek bir sonuç kümesine dönüştürür. |
Aşağıda temel sözdizimi UNION operatörünün: tablo1'DEN sütun_listesini SEÇİN BİRLİK tablo2'DEN sütun_listesini SEÇİN; | Aşağıda temel sözdizimi UNION ALL operatörünün: tablo1'DEN sütun_listesini SEÇİN BİRLİK TÜMÜ tablo2'DEN sütun_listesini SEÇİN; |
Çıktıdan yinelenen satırları ortadan kaldırmak için varsayılan bir özelliğe sahiptir. | Çıktıdan yinelenen satırları ortadan kaldırma özelliği yoktur. |
Onun performans yavaş çünkü yinelenen kayıtları bulup kaldırmak zaman alır. | Onun performans hızlı çünkü yinelenen satırları ortadan kaldırmaz. |
Çoğu veritabanı kullanıcısı bu operatörü kullanmayı tercih eder. | Çoğu veritabanı kullanıcısı bu operatörü kullanmayı tercih etmez. |
Birlik ve Birlik Tüm Örnek
Union ve Union All operatörleri arasındaki farkları bir örnek üzerinden anlayalım. Diyelim ki 'adlı bir tablomuz var' Öğrenci ' Ve ' Öğrenci2 ' aşağıdaki verileri içerir:
Tablo: Öğrenci
Tablo: Öğrenci2
Aşağıdaki SQL ifadesi şunu döndürür: şehirlerin farklı isimleri UNION sorgusunu kullanarak her iki tablodan:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Yukarıdaki ifadeyi çalıştırdıktan sonra Union operatörü yalnızca farklı değerleri döndürdüğü için aşağıdaki çıktıyı alacağız.
Aşağıdaki SQL deyimi geri döner kopyalar dahil tüm şehirlerin adı UNION ALL sorgusunu kullanarak her iki tablodan:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Yukarıdaki ifadeyi çalıştırdıktan sonra aşağıdaki çıktıyı alacağız çünkü Union All operatörü farklı değerleri ortadan kaldırmadan tüm kayıtları döndürüyor.