SQL Normalizasyon
SQL dilinde İki tabloyu birleştirerek sorgulama
Bu yazımızda, SQL dilinde İki tabloyu birleştirerek sorgulama işlemini inceleyeceğiz. Personel ve departman tablolarını tek sorguda birleştireceğiz. Aşağıdaki gibi önce tblpersonel isimli personel tablosunu oluşturunuz. departmanID isimli bir alan eklediğimize dikkat ediniz. Burada personelID alanımız primary key(birincil anahtar) alandır, departmanID alanı ise bu tabloda foreign key(yabancı anahtar) alanıdır.

Yukarıdaki tabloyu oluşturduktan sonra tbldepartman isimli aşağıdaki tabloyu oluşturunuz. Bu tablodaki departmanID ile tblpersonel arasındaki departmanID'yi birbirine bağlayacağız.

Daha sonra aşağıdaki şekilde tbldepartman tablosuna kayıt giriniz.

Daha sonra tblpersonel tablosuna aşağıdaki kayıtları giriniz.

Şimdi personel ve departman tablolarını birleştirip sorgulayacak bir SQL sorgusu yazalım. Görüldüğü gibi tblpersonel tablosunda departmanID değerlerinin hepsi girilmiştir ve tbldepartman tablosundaki karşılığı vardır.

Burada normalizasyonu sağlamak amacıyla departman alanı ayrı bir tablo olarak ayrılmıştır, yoksa tblpersonel tablosuna DEPARTMAN alanı ekleyebilirdik.

Burada normalizasyonu sağlamak amacıyla departman alanı ayrı bir tablo olarak ayrılmıştır, yoksa tblpersonel tablosuna DEPARTMAN alanı ekleyebilirdik.
SELECT p.ADI, p.SOYADI, d.DEPARTMAN
from tblpersonel p, tbldepartman d
WHERE p.departmanID= d.departmanID
Sorgu sonucu aşağıdaki gibi dönecektir. Burada kolaylık olsun diye tlbpersonel tablosunu p ile tbldepartman tablosunu ise d ile kısalttık. Burada yaptığımız p ve d gibi özel isimlendirmelere ALIAS(takma isim) ismini veriyoruz.
İsterseniz hiç kısaltma yapmadan aşağıdaki gibi direkt olarak tablo isimlerini her alan için uzun uzun yazarak da aynı işlemi yapabilirsiniz.
İsterseniz hiç kısaltma yapmadan aşağıdaki gibi direkt olarak tablo isimlerini her alan için uzun uzun yazarak da aynı işlemi yapabilirsiniz.
SELECT tblpersonel.ADI, tblpersonel.SOYADI, tbldepartman.DEPARTMAN
from tblpersonel, tbldepartman
WHERE tbldepartman.departmanID= tblpersonel.departmanID

Bu dersimizde SQL komutları kullanarak personel ve departman tablolarını departmanID alanı üzerinden birleştirdik. Üç veya daha fazla tabloyu benzer şekilde WHERE şartından sonra AND ifadeleri kullanarak bağlayabilirsiniz.