You are on page 1of 12

OKLU TABLOLAR

OKLU TABLOLARIN KULLANIMI


Baz uygulamalarda veri birden fazla tablo
zerinde yer alabilir. Bu tablo verileri
birletirilerek sonular elde edilir.

PERSONEL_NO ADI BLM_NO BLM_NO BLM_ADI KONUM

PERSONEL_NO BLM_NO KONUM


TABLOLARIN BRLETRLMES
Birden fazla tabloyu ele alarak, birletirilmesi ve tek bir
sonucun retilmesi durumunda birletirme (join) ilemi
uygulanr.
SELECT tablo1.stun1, tablo2.stun2
FROM tablo1,tablo2
WHERE tablo1.stun1=tablo2.stun2

ki tabloyu birletirmek iin bir birletirme koulunun


dzenlenmesi gerekir. Bu koul, her iki tablonun hangi
stunlar kullanlarak birletirileceini belirler.

Sadece iki tablo deil n sayda tablo birletirilebilir. Ancak


bu durumda en az (n-1) birletirme koulu
tanmlanmaldr.
KARTEZYEN ARPIM
ki tablo arasnda birletirme koulu
tanmlanmam ise sonu olarak bir kartezyen
arpm elde edilir.

rnek: PERSONEL ve BLM tablolarn


birletirmek iin:

SELECT PERSONEL_NO, ADI, BLM_ADI


FROM PERSONEL, BLM;

Bir birletirme koulu tanmlanmad iin, her iki


tablodaki satrlarn saysnn birbirleriyle arpm
kadar satrdan oluan bir sonu elde edilir.
BRLETRME TRLER
Tablolar farkl ekillerde birletirme olana
bulunmaktadr.

Eiti olan birletirme

Eiti olmayan birletirme

D birletirme

Kendine birletirme
ET OLAN BRLETRME
PERSONEL ADI BLM_NO BLM_NO BLM_AD KONUM
_NO I

D anahtar Birincil anahtar

Bir personelin alt blmn adn elde etmek iin ,


PERSONEL tablosunun BLM tablosunun
BLM_NO isimli stununun ierii ile karlatrlr.

SELECT PERSONEL.PERSONEL_NO, PERSONEL.ADI,


PERSONEL.BLM_NO, BLM.BLM_ADI,
BLM.KONUM
FROM PERSONEL, BLM
WHERE PERSONEL.BLM_NO=BLM.BLM_NO;
ET OLAN BRLETRME
Farkl tablolardan alnan stun isimlerinde
benzerlik olduunda SQL bunu ayrd
edemeyeceinden,muhakkak banda tablo ismiyle
arlmaldr.
Bazen sorgu cmlelerinin ksaltlmas maksadyla
tablo isimleri daha ksa isimlerle yeniden
adlandrlr.

SELECT P.PERSONEL_NO, P.ADI, P.BLM_NO,


B.BLM_ADI, B.KONUM
FROM PERSONEL P, BLM B
WHERE P.BLM_NO=B.BLM_NO;
ET OLMAYAN BRLETRME
Eer birinci tablonun bir stununa, ikinci tabloda
dorudan uyan bir stun yoksa, eit olmayan
birletirmeden sz edilir.

PERSONEL(Personel_No, Ad, Yneticisi, cret, Blm_No)


CRET_DZEY(Derece, EnAz, Enok)

Yukardaki iki tabloyu birletirebilecek bir ortak


stun yoktur.Ancak;

SELECT ADI, CRET, DERECE


FROM PERSONEL,ST_DZEY
WHERE CRET BETWEEN ENAZ AND ENOK;
DI BRLETRME
Eiti olan birletirmede eleen stunlarda
eleemeyen kaytlar yazlmyordu, bunlar da
yazdrmak iin D Birletirme kullanlr.

rnek: BLM tablosunda yer alan ancak PERSONEL


tablosunda yer almayan ve REKLAM bilgisini ieren bir
satr bulunmaktadr. Bu iki tabloyu karlamayan
kaytlar da grntleyecek biimde birletirmek ve sonucu
listelemek iin:

SELECT P.ADI, P.BLM_NO, B.BLM_ADI FROM


PERSONEL P RIGHT JOIN BLM B ON
P.BLM_NO=B.BLM_NO;
KENDNE BRLETRME
Baz uygulamalarda birletirme ilemi tek bir
tablonun kendi stunlar ierisinde yaplmaktadr.
PERSONEL tablosunu iki farkl tablo biiminde
dnebiliriz.

PERSONEL_ ADI YNETCS PERSONEL_ ADI


NO NO

101 BURAK 101 BURAK


250 ERSN 101 250 ERSN
160 AHMET 101 160 AHMET
150 AYBKE 101 150 AYBKE
KENDNE BRLETRME
rnek: PERSONEL tablosunun YNETCS
balkl stunu, her bir personelin yneticisinin
personel numarasn iermektedir. Hangi
yneticinin hangi personelle altn belirlemek
iin:

SELECT P.PERSONEL_NO AS NO,


P.ADI AS PERSONEL, Y.ADI AS YNETCS
FROM PERSONEL P, PERSONEL Y
WHERE Y.PERSONEL_NO= P.YNETCS;
KME OPERATRLERN KULLANARAK
BRLETRME

UNION ve UNION ALL ileleri


Union, verilen koul ifadesine uygun olarak, ift kaytlarn
gz ard edilerek her iki kmedeki tm kaytlar seer.
Union All, ift kaytlar da dahil eden birletirme ilemidir.

rnek: PERSONEL tablosunda, ad A ile balayanlar veya


grevi M ile balayanlar topluca listelemek iin:

SELECT Ad,Grevi FROM PERSONEL


WHERE Ad LIKE A*
UNION
SELECT Ad, Grevi FROM PERSONEL
WHERE Grevi LIKE M*;

You might also like