Oracle Ders – 20 Set Operators

Merhaba Arkadaslar ,
Bu yazimda Oracle da Set operatorleri konusundan bahsedecegim. Set operatorleri birden fazla  SELECT sonucunu birlestirmek icin kullanilir.
Oracle 11G de Set (kume) operatorleri UNION , UNION ALL , INTERSECT ve MINUS tir.

Bu konu adi uzerinde matematikteki kume konusu gibidir. Yani 2 kume dusunelim A ve B olsun
A UNION ( Birlesim) B , A INTERSECT (Kesisim) , A MINUS (FARK)  B islemini kumeler uzerinde dusunelim. UNION ALL yapisi da  kumelerde bildiginiz uzere ayni eleman birden fazla bulunamaz, birlesme islemi de olsa 2 kere yazilmaz. UNION ALL yapisi ayni olan sonuclarin sadece birinin degil hepsinin getirilmesini saglar.

create table set_operators( 
id number,
column1 varchar2(20)
);
insert into set_operators values(1,'Record1');
insert into set_operators values(2,'Record2');
insert into set_operators values(3,'Record3');
insert into set_operators values(4,'Record4');
insert into set_operators values(5,'Record5');
insert into set_operators values(6,'Record6');
insert into set_operators values(7,'Record7');

Tablomuzu olusturup kayitlari ekledikten sonra orneklerimize baslayabiliriz.

UNION

select column1 from set_operators
where id <3
UNION
select column1 from set_operators
where id >4;

dikkat ederseniz birinci select sorgusunda id si 3 ten kucuk kayitlarin column1 alanini sorguladim ikinci select sorgusunda ise id si 4 ten buyuk kayitlarin column1 alanini sorguladim.
Bu iki sorguyu UNION islemi ile birlestirdim. Su kayitlar gelecektir. Ilk iki kaydi birinci select sorgusuna geri kalan 3 kayit ise ikinci select sorgusuna aittir.

Record1
Record2
Record5
Record6
Record7

select column1 from set_operators
where id <5
UNION
select column1 from set_operators
where id >2;

Bu sorgu sonucu ;

Record1
Record2 
Record3
Record4
Record5
Record6
Record7

Dikkat ederseniz iki select sorgusu icin de saglanan id 3 ve id 4 sonuclari bir kez geldi.

UNION ALL

select column1 from set_operators
where id <5
UNION ALL
select column1 from set_operators
where id >2;

UNION ALL ile ayni sorguyu calistirdigimizda sarti saglayan veriler iki defa geldi.

Record1
Record2
Record3
Record4
Record3
Record4
Record5
Record6
Record7

INTERSECT
Intersect islemi (kesisim) iki sorgu icin de ortak olan sonuclari dondurur.

select column1 from set_operators
where id <5
INTERSECT
select column1 from set_operators
where id >2;

Record3
Record4

MINUS
Birinci sorgu sonucu donen sonuclarin ikinci sorgu ile donen sonuclardan farkidir.

select column1 from set_operators
where id <5
MINUS
select column1 from set_operators
where id >2;

Record1
Record2

Her sorgu ifadesi ayni sayida kolon (column) dondurmelidir ve birbiriyle karsilastirilacak sekilde konumlandirilmalidir.

Yazima burada son veriyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *