Professional Documents
Culture Documents
Veri taban kaytlar oluturulurken btn bilgiler bir tabloda deil de, birka
tablo zerinde tutulur. Bu datalarn daha dzenli olmasn, gereksiz veri tekrarlarnn
engellenmesini ve veri ynetimini kolaylatrr. Daha nce bu konu ile ilgili 4. ve
5.Blmde veri taban ve normalizasyon konusundan detaylar ile bahsedilmi ve
rnekler verilmitir.
Bu blme kadar yazlan tm sorgularda tek tablo zerinde ilem yapld. Bu
blmde, ilikisel veri tabanlarnn ve SQLin ok nemli ve yararl bir zellii olan
birletirme (join) ilemi anlatlacaktr. likisel veri tabanlarna ilikisel denmesinin
nedeni olan Birletirme ilemi iki veya daha ok tablo arasnda balant (link)
kurarak tek bir tablo oluturur ve sorgu bu tablo zerinde alr .
Birden fazla tablo zerinde ilem yaplaca zaman; select cmleciinden
sonra tabload.tablo_alanlar aralarna virgl konularak yazlr ve kullanlacak tablolar
from cmleciinden sonra aralarna virgl konularak yazlr. Daha sonra da WHERE
art ile tablolar arasndaki ilikili ortak alanlar eitlenir. Buradaki en nemli zelliin
iki tablo arasnda ilikili ortak bir alann olmas gerektiidir. Aada projemize ait
tablolar ve ilikili alanlar belirtilmitir.
Tablolar
arasndaki
ilikiyi
belirten
izgi
81
VER TABANI YNETM SSTEMLER I Alako BURMA
Projedeki her tablonun bir alan ana tablo olan personel tablosunun bir alan ile
ortaktr ve tanmlanan alanlar ayn zelliktedir.
rnek-1) SQL> select * from personel where birimkodu=301;
BirimKodu 301 olan personelin listesini verir.
82
VER TABANI YNETM SSTEMLER I Alako BURMA
ki sorguda ayndr. Tek fark yazlm farkdr. Dikkat edilirse p.sicilno gibi
ifadeler vardr. Burada olduu gibi from szcnden sonra yazlan tablo adlar iin
bir boluk braktktan sonra ksa bir isim verilebilir. Bylece uzun tablo adn srekli
yazmaktansa o tablo ad iin alias olarak adlandrlan ksa isim kullanlabilir. Alias
olarak verilen tablo ismi alanlar listelenirken yazm olarak byk kolaylk
salamaktadr. Burada personel tablosu iin p, meslekler tablosu iin m kullanlmtr.
En ok kullanlan yntem ilk tabloya a harfinden balamak, dierlerine de b,c, gibi
alias isimler vermektir.
NOT : where personel.meslekkodu=meslekler.meslekkodu Bu ifade kodun
karln bulmak asndan en nemli olan ifadedir. kullanlmaz ise sorgu sonucu
yanl kacaktr. yleki; her bir personel meslek tablosundaki tm mesleklere
karlk gelecek ekilde listelenecektir.
83
VER TABANI YNETM SSTEMLER I Alako BURMA
84
VER TABANI YNETM SSTEMLER I Alako BURMA
85
VER TABANI YNETM SSTEMLER I Alako BURMA
86
VER TABANI YNETM SSTEMLER I Alako BURMA
87
VER TABANI YNETM SSTEMLER I Alako BURMA
rnek-5) Aylk creti 1300 den byk olan personelin listesini veren sorgu.
NOT : Bu blm sonuna kadar temel SQL komutlar anlatlmtr. SQL komutlar ok
kullanl ve yararldr. rnein: personel bilgileri ierisinden maa 1500 den byk
olanlarn listesi ve says alnrken SQL dili deil de klasik programlama dili
kullanlm olsayd byle bir liste hangi programlama mant ile elde edilebilirdi.
Sonuca ulaabilmek iin birok satrdan meydana gelen kod yazlmas gerekirdi.
Programlama dilleri ile elde edilecek sonuta izlenebilecek yntemlerden biri u
olabilirdi : Bilgilerin yazld dosyann ilk kaydna gidilir, sonra dosyann sonuna
gelinene kadar her bir personel maann 1500den byk olup olmad art sorulur
ve bu arta uyan elemanlar listelenir. Ka kii olduunun bilgisini bulmak iinde bu
bilgi bir deikende tutularak deikenin deeri 1er artrlarak arta uyan ka eleman
olduu bilgisine ulalr.
Ayn ekilde; her blmde alan personel says nedir veya ka farkl blm
vardr? SQL sorgusu iin dnlecek olursa bu tip sonularn klasik programlama
mant ile yaplabilmesinin ne kadar zor ve vakit alc olduunu dnn.
COUNT, AVG, SUM, DISTINCT, GROUP BY ve HAVING ile elde edilen sorgu
sonularnn klasik programlama mant ile nasl yaplabileceini dnn.
Bu rneklerden sonra SQL ile ilem yapmann ne kadar kolay olduu, SQLin
ne kadar yetenekli bir dil olduu ve SQLin nemi anlalabilir. Bu nedenle V.Basic,
Delphi, Asp, PHP gibi programlama dillerinde SQL desteini kullanarak ilemlerinizi
kolaylatrnz.
88