folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanı Select Sorgusu



Veritabanı Select Sorgusu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blackfire
    Blackfire's avatar
    Kayıt Tarihi: 06/Temmuz/2008
    Erkek

    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 böyle 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'

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    İ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...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blackfire
    Blackfire's avatar
    Kayıt Tarihi: 06/Temmuz/2008
    Erkek

    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

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    hocam inner join le 2 tablo bağlarsın söyle diyim bi tablon iller bi tablon ilçeler olsun 

    İller - 1.istanbul , 2.ankara 

    ilçeler - 1.bakırköy , 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.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    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.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blackfire
    Blackfire's avatar
    Kayıt Tarihi: 06/Temmuz/2008
    Erkek

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

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Milamber
    Milamber's avatar
    Kayıt Tarihi: 27/Mayıs/2009
    Erkek

    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
Toplam Hit: 1367 Toplam Mesaj: 7