Bilgisayar Bölümü ASP Kod ve Script Arşivi


Joins ve Keys

JOINS ve KEYS
Baz durumlarda veritabanmzdaki iki tablodan birden veri almak durumunda kalabiliriz. Bu tr durumlarda join ifadesinden ve key ifadelerinden faydalanabiliriz. ncelikle aadaki ""sirketler"" ve ""isciler"" adl tablolar inceleyelim.

Sirket_ID Sirket_SM
17 Alfemo Mobilya
24 stikbal Mobilya
39 Konfor Mobilya
48 Mekan Mobilya



sci_ID sci_SM sci_TELEFON sci_SRKET
192 Ahmet VURAL 545 898 75 98 17
213 Selami TEK 533 546 45 77 17
219 Vahdettin KOYUNCU 542 569 52 52 24
225 Ahmet afak ERDNMEZ 535 365 88 96 39
319 Burak CANKAZAN 505 548 97 52 52

""sirketler"" tablosundaki Sirket_ID stunu ""primary_key"" yani birincil anahtar veri ierir. Bildiiniz gibi birincil anahtar olan stunlardaki veriler asla tekrarlanmaz. Yani ""sirketler"" tablosuna ne kadar veri girerseniz girin artk hi bir irket , Alfemo Mobilya'ya atanm olan 17 nolu sirket_ID deerini alamaz. Ayn ekilde ""isciler"" tablosunda da sci_ID stunu bir ""primary key"" stunudur. ""isciler"" tablosundaki isci_sirket stunu , ""sirketler"" tablosundaki sireketlerin sirket_ID numaralarna isaret etmektedir. ""isciler"" tablosunda her ne kadar iilerin altklar irketlerin isimleri yazmasa da biz sirket idlerinin tutulduu isci_sirket stunu sayesinde her iinin alt irketin adn renebiliriz. Bunun iin kullanmamz gereken sql cmlesi ve elde edeceimiz sonu tablosu aadaki gibi olacaktr.

Select isciler.isci_isim , sirketler.sirket_isim from isciler , sirketler where sirketler.sirket_ID=isciler.isci_sirket

sci_SM irket_SM
Ahmet VURAL Alfemo Mobilya
Selami TEK Alfemo Mobilya
Vahdettin KOYUNCU stikbal Mobilya
Ahmet afak ERDNMEZ Konfor Mobilya

Ayn rnek zerinden gidecek olursak Alfemo Mobilya'da alan iileri ve telefon numaralarn elde etmek iin kullanmamz gereken sql cmlesi ve elde edeceimiz sonu u ekilde olacaktr.

Select isciler.isci_isim , isciler.isci_telefon from isciler,sirketler where sirketler.sirket_ID=isciler.isci_sirket And sirketler.sirket_isim='Alfemo Mobilya'

INNER JOIN
inner join ifadesi , her iki tablodan da artlarn doruland verileri sralar. Bu yn ile yukardaki sql ifadeleri ile hemen hemen ayn ie yaramaktadr.

Select isciler.isci_isim , sirketler.sirket_isim from isciler inner join sirketler On sirketler.sirket_ID=isciler.isci_sirket

sci_SM irket_SM
Ahmet VURAL Alfemo Mobilya
Selami TEK Alfemo Mobilya
Vahdettin KOYUNCU stikbal Mobilya
Ahmet afak ERDNMEZ Konfor Mobilya

LEFT JOIN
left join ifadesi , On ifadesinden sonra gelen koulla elesin , elemesin birinci tablodaki tm verileri listeler.

Select isciler.isci_isim , sirketler.sirket_isim from isciler left join sirketler On sirketler.sirket_ID=isciler.isci_sirket

RIGHT JOIN
right join ifadesinin tam tersi olarak , elemesi olsun olmasn ikinci tablodaki tm verileri listeler.

Select isciler.isci_isim , sirketler.sirket_isim from isciler right join sirketler On sirketler.sirket_ID=isciler.isci_sirket

sci_SM irket_SM
Ahmet VURAL Alfemo Mobilya
Selami TEK Alfemo Mobilya
Vahdettin KOYUNCU stikbal Mobilya
Ahmet afak ERDNMEZ Konfor Mobilya
Burak CANKAZAN

Bu rnekte , Burak Cankazan adndaki iinin irketi 52 numara ile gsteriliyor. Oysa irketler tablosunda sirket_ID deeri 52 olan bir irket kaytl deil. Ancak right join ifadesi kullanld iin Burak Cankazanc'n kayd listeleniyor ancak irket ismi gsterilemiyor.
"

ASP Kitabı

 

Faydalılar: Altın Fiyatları |Hediye Kolye | pırlanta fiyatları
Ana Sayfa  Sık Kullanılanlara Ekle   admin[at]bilgisayarbolumu.com | © 2006 - 2023 Bilgisayarbolumu.com