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