Bağlı Tablolarda SQL Insert Sorgusu
SQL meraklılarına selamlar :)
Bir önceki makalemizde SQL insert sorgusu ile tablolarımıza veri eklemeyi ve select sorgusu ile tablolara eklenen verileri görüntülemeyi öğrenmiştik.
Ancak tablolara veri eklerken,veri eklediğimiz tablolar diğer tablolardan foreign key ile bağlı veri referansı almıyordu.
Bu makalemizde ise bir başka tabloya bağımlı bir SQL tablosuna nasıl veri girilir bunu öğreneceğiz.
Öncelikle örnek veritabanımız olan BakkalDB'nin diyagram aracılığıyla tablo yapısını hatırlayalım:
Önceki makalemizde bu tablolardan "Markalar" ve "Kategoriler" tablosuna kayıtlar girmiştik ve şimdi ise bir başka tabloya bağımlı bir tablo seçerek içine veri ekleyeceğiz.
Seçimimiz şimdilik "AltKategoriler" tablosu olsun ve bu tabloya veri ekleyelim,ancak "AltKategoriler" tablosunu incelediğimizde "KategoriID" isimli kolonu "Kategoriler" tablosundaki "KategoriID" kolonuna bağlandığını görüyoruz.
Yani bu demek oluyor ki "Kategoriler" tablosunda olmayan bir verinin kaydını "AltKategoriler" tablosuna referans
vermeye çalışırsak "AltKategoriler" tablosuna veri giremeyiz.
İşte tam bu noktada basit bir SQL select sorgusuyla referans aldığımız "Kategoriler" tablosuna ait kayıtları
listelememiz gerekiyor:
Gördüğünüz gibi "Kategoriler" tablosuna ait 5 farklı kayıt var ve biz örnek olarak "Hazır Gıda" kategorisine ait alt
kategoriler oluşturmak isteyelim.
"AltKategoriler" tablosuna veri girmek için insert sorgusu yazmadan önce "Hazır Gıda" kaydının Primary Key olarak
atanmış olan "KategoriID" değerini aklımızda tutuyoruz: KategoriID=1
KategoriID değerini aklımızda tuttuğumuza göre şimdi "AltKategoriler" tablosu için SQL insert sorgusunu yazıyoruz:
Sorgumuzu çalıştırdığımızda "1 satır etkilendi" diye Türkçe'ye çevirebileceğimiz bir ibareyle karşılaşıyoruz,demek ki
insert sorgumuz başarıyla çalıştı ve AltKategoriler tablosuna veri girdik.
Insert sorgumuza dikkat edersek "AltKategoriID" tablosuna dair herhangi bir bilgi geçmedik çünkü tıpkı Kategoriler
tablosuna veri eklediğimiz gibi Primary Key olarak atanan kolonları insert sorguların dahil etmiyoruz.Bunun sebebi
primary key olarak atanan bir kolon otomatik olarak kendi değerini kendisi kaydediyor.
Şimdi "Hazır Gıda" için birkaç sorguyu daha alt alta yazalım ve birkaç alt kategori daha oluşturalım:
Sorgularımızı tek seferde çalıştırarak alt kategorilerimizi oluşturduk,biraz da "Sebze" kategorisi için alt kategoriler oluşturalım,"Sebze" kategorisinin KategoriID'si 2:
Böylece veritabanımız bakkallıktan çıktı birazda manavlık işine girmiş oldu :)
Son olarak "Meyve" kategorisine ait alt kategoriler girelim ki manavlık işimize sağlam adım atmış olalım :)
"Meyve" kategorisinin KategoriID'si 3:
Artık alt kategorilerimizi tamamladık ve şimdi select sorgusu ile alt kategorilerimizi listeleyelim:
Liste bu şekilde uzayıp gidiyor,tabi bu şekilde bir listeleme yöntemiyle hangi alt kategorinin hangi kategoriye ait
olduğunu anlamak için her KategoriID'nin hangi kategoriye ait olduğunu ezbere bilmek zorunda kalıyoruz.
Tabi gerçek bir veritabanı uzmanı bu şekilde çalışmak yerine her kategorinin adının yanında o kategoriye ait alt
kategori adını getirebilmeli,dolayısıyla bu konua SQL Join işlemleri deniliyor ve bu konuyu Select sorgusu için
yazacağımız makale dizilerinde öğrenip bu kaydettiğimiz veriler üzerinden örnekler yapacağız.
Bağlı tablolarda SQL insert sorguları makalemizin sonuna geldik,bir sonraki makalemizde görüşmek dileğiyle şimdilik
hoşçakalın :)
Bir önceki makalemizde SQL insert sorgusu ile tablolarımıza veri eklemeyi ve select sorgusu ile tablolara eklenen verileri görüntülemeyi öğrenmiştik.
Ancak tablolara veri eklerken,veri eklediğimiz tablolar diğer tablolardan foreign key ile bağlı veri referansı almıyordu.
Bu makalemizde ise bir başka tabloya bağımlı bir SQL tablosuna nasıl veri girilir bunu öğreneceğiz.
Öncelikle örnek veritabanımız olan BakkalDB'nin diyagram aracılığıyla tablo yapısını hatırlayalım:
Önceki makalemizde bu tablolardan "Markalar" ve "Kategoriler" tablosuna kayıtlar girmiştik ve şimdi ise bir başka tabloya bağımlı bir tablo seçerek içine veri ekleyeceğiz.
Seçimimiz şimdilik "AltKategoriler" tablosu olsun ve bu tabloya veri ekleyelim,ancak "AltKategoriler" tablosunu incelediğimizde "KategoriID" isimli kolonu "Kategoriler" tablosundaki "KategoriID" kolonuna bağlandığını görüyoruz.
Yani bu demek oluyor ki "Kategoriler" tablosunda olmayan bir verinin kaydını "AltKategoriler" tablosuna referans
vermeye çalışırsak "AltKategoriler" tablosuna veri giremeyiz.
İşte tam bu noktada basit bir SQL select sorgusuyla referans aldığımız "Kategoriler" tablosuna ait kayıtları
listelememiz gerekiyor:
Gördüğünüz gibi "Kategoriler" tablosuna ait 5 farklı kayıt var ve biz örnek olarak "Hazır Gıda" kategorisine ait alt
kategoriler oluşturmak isteyelim.
"AltKategoriler" tablosuna veri girmek için insert sorgusu yazmadan önce "Hazır Gıda" kaydının Primary Key olarak
atanmış olan "KategoriID" değerini aklımızda tutuyoruz: KategoriID=1
KategoriID değerini aklımızda tuttuğumuza göre şimdi "AltKategoriler" tablosu için SQL insert sorgusunu yazıyoruz:
Sorgumuzu çalıştırdığımızda "1 satır etkilendi" diye Türkçe'ye çevirebileceğimiz bir ibareyle karşılaşıyoruz,demek ki
insert sorgumuz başarıyla çalıştı ve AltKategoriler tablosuna veri girdik.
Insert sorgumuza dikkat edersek "AltKategoriID" tablosuna dair herhangi bir bilgi geçmedik çünkü tıpkı Kategoriler
tablosuna veri eklediğimiz gibi Primary Key olarak atanan kolonları insert sorguların dahil etmiyoruz.Bunun sebebi
primary key olarak atanan bir kolon otomatik olarak kendi değerini kendisi kaydediyor.
Şimdi "Hazır Gıda" için birkaç sorguyu daha alt alta yazalım ve birkaç alt kategori daha oluşturalım:
Sorgularımızı tek seferde çalıştırarak alt kategorilerimizi oluşturduk,biraz da "Sebze" kategorisi için alt kategoriler oluşturalım,"Sebze" kategorisinin KategoriID'si 2:
Böylece veritabanımız bakkallıktan çıktı birazda manavlık işine girmiş oldu :)
Son olarak "Meyve" kategorisine ait alt kategoriler girelim ki manavlık işimize sağlam adım atmış olalım :)
"Meyve" kategorisinin KategoriID'si 3:
Artık alt kategorilerimizi tamamladık ve şimdi select sorgusu ile alt kategorilerimizi listeleyelim:
Liste bu şekilde uzayıp gidiyor,tabi bu şekilde bir listeleme yöntemiyle hangi alt kategorinin hangi kategoriye ait
olduğunu anlamak için her KategoriID'nin hangi kategoriye ait olduğunu ezbere bilmek zorunda kalıyoruz.
Tabi gerçek bir veritabanı uzmanı bu şekilde çalışmak yerine her kategorinin adının yanında o kategoriye ait alt
kategori adını getirebilmeli,dolayısıyla bu konua SQL Join işlemleri deniliyor ve bu konuyu Select sorgusu için
yazacağımız makale dizilerinde öğrenip bu kaydettiğimiz veriler üzerinden örnekler yapacağız.
Bağlı tablolarda SQL insert sorguları makalemizin sonuna geldik,bir sonraki makalemizde görüşmek dileğiyle şimdilik
hoşçakalın :)