TSql – Union ve Union All Operatörlerinin Kullanimi ve Farklari

TSql – Union ve Union All Kullanimi ve Farklari

Union Operatörü

Union operatörü iki veya daha çok select sorgusunun döndürdügü veri kümelerini birlestirmek için kullanilir.

Bu operatörü kullanirken, her bir select sorgusundan dönen kümenin ayni kolon sayisina sahip olmalaridir. Ayrica kolonlarin veri tipleride ve kolonlarin siralarida ayni olmalidir.

.

Union Operatörün Kullanim Sekli

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

Remark Union Operatörü select sonucu dönen tüm kümelerdeki verileri tekillestirerek birlestirir. Yani iki select sorgusundada Sadece Ad kolonu oldugunu düsünürsek, Iki sorgudanda gelen Ahmet isimleri tekillestirildiginden union isleminden sonra sadece tek bir Ahmet kalacaktir.

Remark Eger select sorgularindan dönen kayirlari tekillestirmek istemiyorsaniz union yerine union all operatörünü kullanmalisiniz.

.

Union All Operatörün Kullanim Sekli

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

Remark Union veya Union all operatorü ile çekilen kayitlarda kolon isimleri her zaman ilk selectdeki kolon isimleri ile ayni olur. Diger selecy ifadelerinde kolon isimleri farkli olsa bile bu gözardi edilir.

Örnekler:

Örnekler için Kisi1 ve Kisi2 adli iki adet tablo olusturup içine kayitlar atacagiz. Bunu için asagidaki sorgulari çalistirin.

create table Kisi1
(
ID int,
Ad varchar(20),
Soyad varchar(20)
)
insert into Kisi1(ID,Ad,Soyad) values (1,'Sabri','KUNT'),(2,'Ahmet','TANRIVERDI'),
(3,'Ihsan','ÖLMEZ'),(4,'Ali','RÜZGAR'),(5,'Mesut','ATESER')

create table Kisi2
(
ID int,
Ad varchar(20),
Soyad varchar(20)
)
insert into Kisi2(ID,Ad,Soyad) values (1,'Sabri','KUNT'),(2,'Ahmet','TANRIVERDI'),
(3,'Metin','TOSUN'),(4,'Ali','AYDOGAN'),(5,'Ali','KALFA')

Iki tablodanda ayri ayri select sorgusu çektigimizde asagidaki kayitlar gelir.

select * from Kisi1

ID Ad Soyad
1 Sabri KUNT
2 Ahmet TANRIVERDI
3 Ihsan ÖLMEZ
4 Ali RÜZGAR
5 Mesut ATESER

select * from Kisi2

ID Ad Soyad
1 Sabri KUNT
2 Ahmet TANRIVERDI
3 Metin TOSUN
4 Ali AYDOGAN
5 Ali KALFA

Simdi bu 2 sorguyu union operatörü ile birlestirerek sonucu görelim.

select * from Kisi1
union
select * from Kisi2

ID Ad Soyad
1 Sabri KUNT
2 Ahmet TANRIVERDI
3 Ihsan ÖLMEZ
3 Metin TOSUN
4 Ali RÜZGAR
4 Ali AYDOGAN
5 Mesut ATESER
5 Ali KALFA

Simdi ise ayni sorgulari Union all ile birlestirip farki görelim.

select * from Kisi1
union all
select * from Kisi2

ID Ad Soyad
1 Sabri KUNT
1 Sabri KUNT
2 Ahmet TANRIVERDI
2 Ahmet TANRIVERDI
3 Ihsan ÖLMEZ
3 Metin TOSUN
4 Ali RÜZGAR
4 Ali AYDOGAN
5 Mesut ATESER
5 Ali KALFA

Union ile birlestirdigimizde sonuç olarak Sabri KUNT ve Ahmet TANRIVERDI kayitlari sadece bir kez gelmistir, Çünkü Union operatörü kayitlari tekillestirmistir.

Union All operatöründe ise kayitlar oldugu gibi birlestirilmis ve bunun sonucunda da Sabri KUNT ve Ahmet TANRIVERDI ye ait kayitlar iki kez gösterilmistir.

.

Tags:

One thought on “TSql – Union ve Union All Operatörlerinin Kullanimi ve Farklari

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.