A Oracle DBA's BLOG

Welcome to my ORACLE DBA blog. You will be Amazing!!!

Saturday, December 10, 2011

Point of Join important topic for beginers

TABLOLAR ARASI BAĞLANTI (JOIN)
           
Oracle veritabaninda birden cok tabloda yer alan sutunlari iliskilendirerek birlesik veriler elde etmek icin JOIN kelimesini kullaniriz.
Join işleminde bilinmesi gereken önemli nokta,  join işlemi yapıldıktan sonra birleştirilen tabloların içeriği değiştirilmez sadece o anki sonuç ekranına yansıtılır.
   Cross Join
İlişkili olsun olmasın birleştirilecek olan tabloların tüm satırlarının listelenmesini sağlar. Sorgu sonucu iki tablonun satır sayısı çarpımları kadardır.

SELECT cname,city,odate,onum,amt
 FROM customers CROSS JOIN orders;

SELECT *
 FROM customers CROSS JOIN orders;
Inner Join

Inner Join işlemi ile birleştirilecek olan tabloların sütunlarının içerdiği veriler kontrol edilerek kesisim kümesi alınıyor.

SELECT cname,city,onum,amt,odate
 FROM customers INNER JOIN orders ON CUSTOMERS.CNUM = orders.cnum;

 --where ile kullanımı
SELECT cname,city,onum,amt,odate
 FROM customers,orders
 WHERE customers.snum = orders.snum ;
Natural Join

Birleştirilecek tablolarda aynı isim, değerli ve tipli birer tane sütun bulunuyorsa natural join işlemi ile birleştirilme yapılır. Natural join yapılacak tabloların normalize olmaları gerekir.

SELECT cname,city,onum,amt,odate
 FROM customers NATURAL JOIN orders ;

Join On

İçerdiği veriler aynı olan fakat sütün isimleri farklı olan tabloları birleştirmek için join on komutu kullanılır.

SELECT cname,city,onum,amt,odate
 FROM customers JOIN orders ON(customers.cnum = orders.snum);




Join Using
Birleştirilecek olan tablolarda birleştirme işlemini yapılırken hangi sütunun kullanılması  gerektiğini belirtmek istersek join using komutu kullanılır.

SELECT cname,city,onum,customers.cnum
 FROM customers JOIN orders USING(snum);

SELECT cname,city,onum,customers.cnum
 FROM customers JOIN orders USING(snum)
 where onum > 3005
 order by cname;


No comments:

Post a Comment