Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

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:

BakkalDB

Ö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:

SQL-Select

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:

SQL-Insert

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:

SQL-insert-sorgusu

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:

SQL-tablo-insert

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:

SQL-insert-sorgu

Artık alt kategorilerimizi tamamladık ve şimdi select sorgusu ile alt kategorilerimizi listeleyelim:

SQL-Select-Sorgusu

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 yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu