Hocalar yarın veritabanından sınava girecem bi konu aklıma çok takıldı Bizim hoca çoğu select sorgusunda iki tane tablo adı giriyor byle bi sorgu oluyomu mantığı ne bi türlü anlayamadım yardımcı olurmusunuz. rneğin: Select Fname, Adress From Employe, Department Where Dname="Research" AND Dnumber='Dno'

hocam şimdi şyle düşün 2 tablon var bunlardan birisinde bir takım bilgiler tutuyorsun ve işte bunlardan bir tanesi iller sütunu sorun şu şimdi sen bu tablonun bu kısmına girilecek bilgileri bir şekilde kısıtlamak istiyorsun... yoksa birisi girmiş İstanbul bir diğeri girmiş İslambol, bir diğer girmiş İstanblue vs vs vs... ama sonuçta alakalı alakasız bir sürü sonuç çıkmış ve bu durum aramalarda sana sıkıntı çıkarıyor haklı olarak... bu nedenle sen bu sütuna bağlı bir başka tablo yapıp o sütuna girilebilecek verileri kısıtlamayı planlıyorsun aynı zamanda bu diğer tabloda her şehre birde id numarası vermişsin yani çok sütunlu bir tablo birde sadece 2 sütunlu bir başka tablon olsun burada elinde... çok sütunlu tabloda sehir_id diye birşey var 2 sütunluda sehir_id ve sehir_adi diye 2 sütunun var. sen çok sütunlu tabloda isimleri tutup çok fazla yer kaplatmaktansa bunun yerine tutup o sehrin id numarasını tutturarak oradaki metin değerinin kapladığından çok daha az bir alanı int değer tutarak tutmuş oluyorsun. sonrasında bak bu kısım nemli sql sorguna geliyor select from cok_sutunlu_tablo inner join iki_sutunlu_tablo. id on cok_sutunlu_tablo. sehir_id where... şeklinde bir esprisi var... hocam bak veri tabanlarındaki ilişkisel yapı bu noktada çok nemli bence zira kayıt sayısı az olduğunda sütunun birisinde aynı string ifadeyi tutmak çok mühim değildir yani 10000 kere tutsan o kadar fark yapmaz eğer ifade kısaysa... ama senin 10 milyar satır kaydın varsa o tabloda ve 2 milyar satırda aynı ifade tekrar ederse gereksiz yere veri tabanında şişmeler olur... ama onun yerine ufak bir int değer tutmak veri tabanını daha zinde ve hafif tutacaktır. Fırtına koparmaktır işim... Uzaklar Yolcusu

Pardon yanlış anlamışım burdaki olay şu olması lazım mesela soruda diyodur Research departmanında ki dno numarada çalışan elemanları getir diye burda ne olucak o departmanda çalışan elemanları getiricek sadece inner join e gerek yok burda Si vis pacem para bellum.

teşekkürler hocalar az çok kavradım

hocam inner join le 2 tablo bağlarsın syle diyim bi tablon iller bi tablon ilçeler olsun İller - 1. istanbul, 2. ankara ilçeler - 1. bakırky, vs vs diye foreign key kullanır hangi ilçe hangi ilde belirtirsin çekerken inner join kullanırsın sana primary keylerle foreign key leri eşleşenleri getirir senin dediğinde ise 1 tablodan sadece belli kolonları çekiyor türkiye tablosunda iller nufus ve rakım olsun mesela sen iller ve nufus çekerken select iller, nufus from turkiye where nufus=1000 dersin sana nufusu 1000 olan illeri getirir rakımlarını getirmez Si vis pacem para bellum.

inner join de aynısını yapmıyomuydu yoksa ben mi unutmuşum bu sqli nceden bi müddet kullanmıştı ama ikii tablo arasında karşılaştırma yaparken bunu hiç kullanmadım inner join kullanıyodum. inner join le ne farkı var ki bunun

İlişkili sql onlar, inner join, outer join, left join vs İki tablodan aynı anda veri çekmeye yarar, ama aralarında ilişki belirtmezsen hiçbir esprisi yok bildiğin kartezyen çarpım alırsın... select from raporlar, sirketler where raporlar. sirket_id=sirketler. id dersen mesela.. Raporlar tablondaki sirket_id sütununda tutulan id ye sahip şirketi şirket tablosundan alıp da yanına yazmış olursun ;) There are 10 types of people in the world. Those who knows binary and those who dont...