Orta Seviye SQL Server Sql Server

SQL Server’da Union ve Union All Operatörleri Arasındaki Farklar

SQL Server Eğitimleri Kanalına Abone Olun

Herkese merhaba,

Bu başlık altında SQL Server’da Union ve Union All operatörleri arasındaki farkları inceleyeceğiz.

Union operatörü birleşen iki tabloda tekrarlanan satırları getirmezken Union All operatörü tekrarlanan satırları da getirir.

Konuyu daha iyi anlamak adına örnekler yapalım.

Örnek 1 

DECLARE @Tablo1 AS Table (ID INT, Ad VARCHAR(10), Telefon VARCHAR(12))  
DECLARE @Tablo2 AS Table (ID INT, Ad VARCHAR(10), Telefon VARCHAR(12))  
  
INSERT INTO @Tablo1 VALUES(1,'Yavuz', '88996655')  
INSERT INTO @Tablo1 VALUES(2,'Selim', '99986655')  
  
INSERT INTO @Tablo2 VALUES(1,'Hasan', '88446655')  
INSERT INTO @Tablo2 VALUES(2,'Selim', '99986655')  
  
SELECT * FROM @Tablo1  
UNION
SELECT * FROM @Tablo2

Görüldüğü üzere Union yapıldığı zaman 3 adet veri gelecektir. Aynı işlemi Union All ile yaparsak.

DECLARE @Tablo1 AS TABLE (ID INT, Ad VARCHAR(10), Telefon VARCHAR(12))  
DECLARE @Tablo2 AS TABLE (ID INT, Ad VARCHAR(10), Telefon VARCHAR(12))  
  
INSERT INTO @Tablo1 VALUES(1,'Yavuz', '88996655')  
INSERT INTO @Tablo1 VALUES(2,'Selim', '99986655')  
  
INSERT INTO @Tablo2 VALUES(1,'Hasan', '88446655')  
INSERT INTO @Tablo2 VALUES(2,'Selim', '99986655')  
  
SELECT * FROM @Tablo1  
UNION All
SELECT * FROM @Tablo2

Burada görüldüğü üzere ise 4 adet sonuç dönmüş oldu. Union’da benzer kayıtları getirmedi. Union All’da ise getirmiş oldu.

Örnek 2

CREATE DATABASE UnionveUnionAllOrnekDatabase
GO
USE UnionveUnionAllOrnekDatabase
GO
CREATE TABLE dbo.Musteriler
(MusteriID int,Ad Varchar(50),Sehir Varchar(50))
GO
INSERT INTO dbo.Musteriler 
  VALUES(1,'Yavuz Selim','İstanbul'),
        (2,'Selim Kart','Konya') 
GO
Create Table dbo.Calisanlar
(CalisanID int,CalisanAd varchar(50),Sehir Varchar(50))
GO
INSERT INTO dbo.Calisanlar VALUES(1,'Selim Kart','Konya'),
        (2,'Mustafa Kart','İstnabul'),
        (3,'Fevziye Kart','Konya'),
        (4,'Bilge Nuray Kart','İstanbul')
GO

SELECT Ad FROM dbo.Musteriler
UNION 
SELECT CalisanAd FROM dbo.Calisanlar

Union operatörü ile 5 adet sonuç geldi. Union All ile aynı işlemi yapalım. Veri tabanını tekrar oluşturmuyoruz. Buna dikkat edelim.

SELECT Ad FROM dbo.Musteriler
UNION All
SELECT CalisanAd FROM dbo.Calisanlar

Not : Eğer iki tablo içinde tekrar etmeyen veri olduğundan emin iseniz Union All kullanmanızı öneririm. Union kullanırsanız sizin için daha maliyetli bir kod olabilir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

4 Kez Okundu
SQL Server Eğitimleri Kanalına Abone Olun

Yazar hakkında

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.

Kopyalamak Yasaktır!