Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ÇOKLU TABLOLAR. Ç OKLU TABLOLARıN KULLANıMı Bazı uygulamalarda veri birden fazla tablo üzerinde yer alabilir. Bu tablo verileri birleştirilerek sonuçlar.

Benzer bir sunumlar


... konulu sunumlar: "ÇOKLU TABLOLAR. Ç OKLU TABLOLARıN KULLANıMı Bazı uygulamalarda veri birden fazla tablo üzerinde yer alabilir. Bu tablo verileri birleştirilerek sonuçlar."— Sunum transkripti:

1 ÇOKLU TABLOLAR

2 Ç OKLU TABLOLARıN KULLANıMı Bazı uygulamalarda veri birden fazla tablo üzerinde yer alabilir. Bu tablo verileri birleştirilerek sonuçlar elde edilir. PERSONEL_NOADIBÖLÜM_NO BÖLÜM_ADIKONUM PERSONEL_NOBÖLÜM_NOKONUM

3 T ABLOLARıN BIRLEŞTIRILMESI Birden fazla tabloyu ele alarak, birleştirilmesi ve tek bir sonucun üretilmesi durumunda birleştirme (join) işlemi uygulanır. SELECT tablo1.sütun1, tablo2.sütun2 FROM tablo1, tablo2 WHERE tablo1.sütun1 = tablo2.sütun2 İki tabloyu birleştirmek için bir birleştirme koşulunun düzenlenmesi gerekir. Bu koşul, her iki tablonun hangi sütunları kullanılarak birleştirileceğini belirler. Sadece iki tablo değil n sayıda tablo birleştirilebilir. Ancak bu durumda en az (n-1) birleştirme koşulu tanımlanmalıdır.

4 K ARTEZYEN ÇARPıM İki tablo arasında birleştirme koşulu tanımlanmamış ise sonuç olarak bir kartezyen çarpım elde edilir. Örnek: PERSONEL ve BÖLÜM tablolarını birleştirmek için: SELECT PERSONEL_NO, ADI, BÖLÜM_ADI FROM PERSONEL, BÖLÜM; Bir birleştirme koşulu tanımlanmadığı için, her iki tablodaki satırların sayısının birbirleriyle çarpımı kadar satırdan oluşan bir sonuç elde edilir.

5 B IRLEŞTIRME TÜRLERI Tabloları farklı şekillerde birleştirme olanağı bulunmaktadır. Eşiti olan birleştirme Eşiti olmayan birleştirme Dış birleştirme Kendine birleştirme

6 EŞİTİ OLAN BİRLEŞTİRME PERSONEL _NO ADIBÖLÜM_NO BÖLÜM_AD I KONUM Birincil anahtarDış anahtar Bir personelin çalıştığı bölümün adını elde etmek için, PERSONEL tablosunun BÖLÜM tablosunun BÖLÜM_NO isimli sütununun içeriği ile karşılaştırılır. SELECT PERSONEL.PERSONEL_NO, PERSONEL.ADI, PERSONEL.BÖLÜM_NO, BÖLÜM.BÖLÜM_ADI, BÖLÜM.KONUM FROM PERSONEL, BÖLÜM WHERE PERSONEL.BÖLÜM_NO=BÖLÜM.BÖLÜM_NO;

7 EŞİTİ OLAN BİRLEŞTİRME Farklı tablolardan alınan sütun isimlerinde benzerlik olduğunda SQL bunu ayırd edemeyeceğinden,muhakkak başında tablo ismiyle çağrılmalıdır. Bazen sorgu cümlelerinin kısaltılması maksadıyla tablo isimleri daha kısa isimlerle yeniden adlandırılır. SELECT P.PERSONEL_NO, P.ADI, P.BÖLÜM_NO, B.BÖLÜM_ADI, B.KONUM FROM PERSONEL P, BÖLÜM B WHERE P.BÖLÜM_NO=B.BÖLÜM_NO;

8 EŞİTİ OLMAYAN BİRLEŞTİRME Eğer birinci tablonun bir sütununa, ikinci tabloda doğrudan uyan bir sütun yoksa, eşit olmayan birleştirmeden söz edilir. PERSONEL(Personel_No, Adı, Yöneticisi, Ücret, Bölüm_No) ÜCRET_DÜZEY(Derece, EnAz, EnÇok) Yukarıdaki iki tabloyu birleştirebilecek bir ortak sütun yoktur.Ancak; SELECT ADI, ÜCRET, DERECE FROM PERSONEL,ÜST_DÜZEY WHERE ÜCRET BETWEEN ENAZ AND ENÇOK;

9 D ıŞ BIRLEŞTIRME Eşiti olan birleştirmede eşleşen sütunlarda eşleşemeyen kayıtlar yazılmıyordu, bunları da yazdırmak için Dış Birleştirme kullanılır. Örnek: BÖLÜM tablosunda yer alan ancak PERSONEL tablosunda yer almayan ve REKLAM bilgisini içeren bir satır bulunmaktadır. Bu iki tabloyu karşılaşmayan kayıtları da görüntüleyecek biçimde birleştirmek ve sonucu listelemek için: SELECT P.ADI, P.BÖLÜM_NO, B.BÖLÜM_ADI FROM PERSONEL P RIGHT JOIN BÖLÜM B ON P.BÖLÜM_NO=B.BÖLÜM_NO;

10 K ENDINE BIRLEŞTIRME Bazı uygulamalarda birleştirme işlemi tek bir tablonun kendi sütunları içerisinde yapılmaktadır. PERSONEL tablosunu iki farklı tablo biçiminde düşünebiliriz. PERSONEL_ NO ADIYÖNETİCİSİ 101BURAK 250ERSİN AHMET AYBİKE101 PERSONEL_ NO ADI 101BURAK 250ERSİN 160AHMET 150AYBİKE

11 K ENDINE BIRLEŞTIRME Örnek: PERSONEL tablosunun YÖNETİCİSİ başlıklı sütunu, her bir personelin yöneticisinin personel numarasını içermektedir. Hangi yöneticinin hangi personelle çalıştığını belirlemek için: SELECT P.PERSONEL_NO AS NO, P.ADI AS PERSONEL, Y.ADI AS YÖNETİCİSİ FROM PERSONEL P, PERSONEL Y WHERE Y.PERSONEL_NO= P.YÖNETİCİSİ;

12 KÜME OPERATÖRLERİNİ KULLANARAK BİRLEŞTİRME UNION ve UNION ALL işleçleri Union, verilen koşul ifadesine uygun olarak, çift kayıtların göz ardı edilerek her iki kümedeki tüm kayıtları seçer. Union All, çift kayıtları da dahil eden birleştirme işlemidir. Örnek: PERSONEL tablosunda, adı “A” ile başlayanları veya görevi “M” ile başlayanları topluca listelemek için: SELECT Adı,Görevi FROM PERSONEL WHERE Adı LIKE “A*” UNION SELECT Adı, Görevi FROM PERSONEL WHERE Görevi LIKE “M*”;


"ÇOKLU TABLOLAR. Ç OKLU TABLOLARıN KULLANıMı Bazı uygulamalarda veri birden fazla tablo üzerinde yer alabilir. Bu tablo verileri birleştirilerek sonuçlar." indir ppt

Benzer bir sunumlar


Google Reklamları