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
Leave a Reply