NATURAL JOIN , JOIN ON ve WHERE Clause ile tablo birleştirme işlemleri |
||||||
İlişkisel tabloları birleştirmek için farklı sql komutları çalıştırabiliriz. Bazıları yazımı ve kullanımı
açısından diğerine göre daha kolay. Bu yazımda aynı sonucu veren üç farklı SQL sorgusunu
inceleyelim ve hangi yöntemi kullanacağımıza karar verelim. Tabloları birleştirirken
kullanacağımız SQL komutları sırasıyla: NATURAL JOIN , JOIN ON ve WHERE Clause.
Örnekte iki tablo kullandım. Tablo isimleri sırasıyla; "personeller" ve "departmanlar" olacak. Birleştireceğimiz ilişkisel tabloların yapısı: -- personeller tablosunun yapısı : CREATE TABLE IF NOT EXISTS personeller ( personel_id int(11) NOT NULL AUTO_INCREMENT, isim varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, soyisim varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, departman_id int(11) NOT NULL, PRIMARY KEY (personel_id), KEY departman_id (departman_id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- departmanlar tablosunun yapısı : CREATE TABLE IF NOT EXISTS departmanlar ( departman_id int(11) NOT NULL, departman_isim varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (departman_id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;Yarattığım bu tablolara örnek vermek için bir kaç örnek veri girdim. Sırasıyla bu tabloları ilişkisel sütün olan "departman_id" 'yi baz alarak birleştirelim. (Sonuç için en aşağıdaki resme bakabilirsiniz.) NATURAL JOIN (aynı isimde ve tiple olan sütünlara göre otomatik birleşirir) -- Natural Join ile tablo birleştirme işlemi SELECT isim, soyisim, departman_isim FROM personeller NATURAL JOIN departmanlarWHERE Clause ( bu kısıtlama komutu tabloları bileştirmek için de kullanılabilinir) -- WHERE Clause ile tablo birleştirme işlemi SELECT personeller.isim, personeller.soyisim, departmanlar.departman_isim FROM personeller, departmanlar WHERE personeller.departman_id = departmanlar.departman_idJOIN ON ( Direk olarak ilişkişel tabloları birleştirmek için kullanılır ) -- JOIN ON ile tablo birleştirme işlemi SELECT isim, soyisim, departman_isim FROM personeller JOIN departmanlar ON ( personeller.departman_id = departmanlar.departman_id )Bu üç farklı yöntemle tabloları birleştirdiğimizde aşağıdaki aynı sonucu veriyor: ![]() Bu yazımda tabloları birleştirirken kullanabileceğimiz SQL sorgularını örneklerle anlatmaya çalıştım. Gördüğünüz gibi en kısa olan komut NATURAL JOIN oldu. Siz kendinize kolay geleni bulup karar verebilirsiniz. Tabi yararlarını ve zararlarını tartmanız gerek. Ayrıca bu üç yöntemin de Mysql, Oracle, MsSql v.b. veritabanı yönetim sistemlerinde geçerli olduğu için ezberlemekte bir sakınca yok. Umarım yararlı olmuştur. |
||||||
|
||||||
|
May 2013 (1)
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
Java Mobile 3D Oyun Pr ..
PHP ile Botlara (Arama ..
Sitenizin arama motorl ..
Jquery ile Form ToolTi ..
PHP ile JSON verisi ya ..
İş ilanı (Flash ve AS3 ..
Jquery ile dinamik tab ..
Jquery ile dinamik res ..
PHP Pear MDB2 modülü i ..
Mysql veritabanında St ..
PHP ile Botlara (Arama ..
Sitenizin arama motorl ..
Jquery ile Form ToolTi ..
PHP ile JSON verisi ya ..
İş ilanı (Flash ve AS3 ..
Jquery ile dinamik tab ..
Jquery ile dinamik res ..
PHP Pear MDB2 modülü i ..
Mysql veritabanında St ..
Etiketler
| Animasyon | Asp.net | Button | Class | Class-oluşturma | Css | Çek-bırak | Deserialize | Div | Google-ajax-web-search | Google-servis | Hareket | Hareketli | İlişkisel-veritabanı | Javascript | Jquery | Json | Nesne-tabanlı | Normal-formlar | Normalizasyon | Object-oriented | Oop | Php | Programlama | Rozet | Session | Sınıf | Style | Tasarım | Veritabanı | Web-request | Web-response |arama
Loading
sosyal




