database

Bu konu için ayrı bir database oluşturduk. SinifDB adında bir veritabanı oluşturun ve iki tane tabloyu aşağıdaki şekil gibi yapın. Burada bire çok ilişki olduğunu görüyoruz.

Şimdi tablolarımıza veri girişi ekledik. Burada Şehriban Güngör isimli öğrencimizin sınıf idsi NULL değeri taşımaktadır. Buraya dikkat!

null değerine dikkat

Bu iki sınıfı birbirine inner join yaparak bağlayalım.

select * from Ogrenciler as o
inner join Siniflar as s on
o.SinifID=s.SinifID

inner join

Yukarıdaki sorgu ifadesinde bağlı olan kolondan sadece null olmayan değerleri bize getirdi. Bakınız NULL değeri olanları inner joinde göremiyoruz. İşte inner join budur. Şehriban Güngör isimli kaydımıza ulaşamadık. Bizim istediğimiz ise sınıftaki öğrencilerin hepsinin gelmesi ve boş sınıf listesinin gelmesini istiyoruz.

select * from Siniflar as s
left outer join Ogrenciler as o on
o.SinifID=s.SinifID

Burada soldakilerin hepsi gelsin sağdakilerde bağlı olanları gelsin şeklinde yaptık.

Right Outer Join

Örnek: Sınıfı olan öğrenciler gelsin ama boş (öğrencisiz) olan sınıflarda gelsin.

select * from Ogrenciler as o
right outer join Siniflar as s on
o.SinifID=s.SinifID

Yani hangi tablonun tüm özelliklerini yazmak istiyorsak onu belirleyip bu left mi right mi diye anlayıp sorgumuzu yapmamız gerekiyor.

Full Outer Join

Bu joinleme işleminde hepsinin gelmesi isteniliyorsa kullanılır. Eşitliğinin ne tarafını kullandığımız önemli değildir.

select * from Ogrenciler as o
full outer join Siniflar as s on
o.SinifID=s.SinifID

Daha önceden tablomuzun bir tarafında null olan değerleri görüyorduk. Şimdi ise iki tarafında null olan değerleri de görmekteyiz. Outer kelimesini kullanmasanız da olabilir. Biz burada normal formu göstermek için kullandık.

İyi kodlamalar

Yazan Sümeyra Akbıyık
hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Yorum bırak