İner join ,Join Using,Join On,Natural Join, Cross Join,Union, Union All , Minus ,İntersect Birleştirmeler (Oracle Sql)

İner join ,  Join Using  , Join On

INNER JOIN en çok kullanılan tablo birleştirme yöntemidir. İki tablo arasında birleştirme yaparken, tablolardan her ikisinde de yer alan değerler seçilir, tek tabloda yer alan değerler seçilmez.Buna ,ç,ne bağlantıda deniliyor sadece bağlantı kurulan alanları eşleşebilen kayıtlar dönderir bize .. İçine bağlantı, bağlantı kurulan alanlar arasına “=” işareti konarak yazılır.

Join on ile Join Using te sadece söz dizimi kullanımı farklılıı vardır  assagıda yazacagımız sorgularla aynı sonucu elde etmiş oluruz

Misal olarak oracle xe kullanan arkadaşlar bilirler hr  userinin employees ve departments tablolarını kullanalım.

Natural Join

inner joinden farkı aslında ayn işi yapıyolar ama natural join kullandığımızda tablolar arasındaki tüm ilişkilendirmeleri göz önünde bulundurarak yapıyor mesela iki tablomuzda department_id kolonlarını ilişkili ozaman sorgumuz calıstıgında department_id lere göre bütün employees leri getirecek.

Örnekte gene aynı tablo kullanılmıştır..

Cross Join

Her iki tabloyu çapraz olarak birleştirir.
Yani, ilk tablodaki her bir satır için ikinci tablodaki her satır sonuç olarak döner.
burada ortak alanlar eşitlenmez,sadece tablolar belirtilir.

select e.first_name,d.department_name from employees e cross join departments d ;

Bu sorguyu yazdıktan sonra aynı tablolar için konusuyorum  employees  kayıtımız varken suan bana 2889 kayıt dönderdi bu sorguda ortak alanlar eşitlenmeksizin Kartezyen çarpımı yapılıyor bir nevi.

UNION ,  UNION ALL  , Minus ,İntersect

UNION ve UNION ALL ifadeleri iki sorgu sonucunun birleştirilmesi için kullanılır.
Tek farkı, UNION mükerrer kayıtları getirmez, UNION ALL ise tüm kayıtları olduğu gibi listeler.

Minus misal a ve b tablomuz olsun A daki veriler fark B yigetirir yani küme gibi düşünelim A fark B yi dönderir.

İntersect  ise gene  iki küme gibi düşünelim A kesişim B yi verir .
1-)İki tablonun sütun sayısı aynı olmalıdır.

2-)İlk tablodaki her sütunun veri tipi ikinci tabloda ona karşılık gelen sütunun veri tipiyle aynı olmalıdır.

3-)İki tablonun hiç biri ORDER BEY cümleciğiyle sıralanamaz.

Kullanım Şekilleri

Union

select name ,surname from A union select name ,surname from B;

Çıktısı :

NAME                           SURNAME

—————————— ——————–

Cumhur                         CAGATAY

Engin                          TURGUT

Ertugrul                       ARSLAN

Halil                          KILIC

Mehmet                         ARSLAN

Mehmet                         KILIC

Mehmet                         TURKER

Melike                         ACIK

Salih                          KINCAL

9 rows selected.

Union All

select name ,surname from A union all select name ,surname from B;

Çıktısı:

NAME                           SURNAME

—————————— ——–

Mehmet                         KILIC

Mehmet                         TURKER

Cumhur                         CAGATAY

Engin                          TURGUT

Melike                         ACIK

Ertugrul                       ARSLAN

Mehmet                         ARSLAN

Cumhur                         CAGATAY

Mehmet                         KILIC

Salih                          KINCAL

Halil                          KILIC

11 rows selected.

Minus

select name ,surname from A minus select name ,surname from B;

Çıktısı:

NAME                           SURNAME

—————————— ———–

Engin                          TURGUT

Ertugrul                       ARSLAN

Mehmet                         TURKER

Melike                         ACIK

İntersect

select name ,surname from A intersect select name ,surname from B;

Çıktısı:

NAME                           SURNAME

—————————— ———

Cumhur                         CAGATAY

Mehmet                         KILIC

 

About Mehmet KILIÇ

Bilgisayar Mühendisi