Joinler;
Birden fazla tablonun ortak
alanlar ile birleşmesi için kullanılır.
İnner join; Sadece 2 tabloda olan, kesişen tablolar
alınır.
Kullanımı: select * from <tablo_adı> <değişken>
join <tablo_adı>
<değişken>
on <değişken>
<alan_adı>=<değişken><alan_adı>
Değişken belirtmemizin
amacı kullanıcıya kısaltma sağlamaktır. Kullanımı zorunlu değildir.
Örnek: select * from filmler
f
İnner join oyuncular o
on f.filmadı=o.filmadı
Buradaki değişkenler de
filmler-f, oyuncular-o dur.
Cross join;
2 tablonun bütün
kayıtlarını çaprazlar.
Kullanımı: select * from
<tablo_adı> <değişken>
Cross join <tablo_adı>
<değişken>
Örnek: select * from
oyuncular
cross join filmler
Full join: Her 2
tablodaki kesişen-kesişmeyen tüm kayıtlar gösterilir.Eşleşmeyenler “null” ile
gösterilir.
Kullanımı: select * from
<tablo_adı> <değişken>
Full join
<tablo_adı><değişken>
On
<değişken>.<alan_adı>=<değişken>.<alan_adı>
Sonuçlar daima ilk tabloya
göre baz alınır. Eşleşmeyen null karakterler de baz alınan tabloya göre
girilmemiş kayıttır.
Outer join: 2 ye ayrılır. Left outer join,right outer
join.
Left outer join, Left outer join, ifadesinin sol tarafındaki tablo baz
alınır. O tablo(baz alınan) olduğu gibi yazılır, diğer tablodan ise eşlenen
kayıtlar karşısına yazılır.
Eğer eşleşen kayıt yoksa o satır NULL ile tamamlanır.
Kullanımı: select * from <tablo_adı>
<değişken>
Left outer join
<tablo_adı> <değişken>
On <değişken>.<alan_adı> =
<değişken>.<alan_adı>
Örnek: select * from
filmler f
Left outer join oyuncular o
On f.filmno=o.filmno
Right outer join:Right outer
join, ifadesinin sağ tarafındaki tablo baz alınır. O tablo(baz alınan) olduğu
gibi yazılır, diğer tablodan ise eşlenen kayıtlar karşısına yazılır.Eşleşen
kayıt yoksa satır “null” ile doldurulur.
Kullanımı: select * from <tablo_adı>
<değişken>
Right outer join
<tablo_adı> <değişken>
On <değişken>.<alan_adı> =
<değişken>.<alan_adı>
Örnek: select * from
oyuncular o
Right outer join filmler f
On o.filmno=f.filmno
Joinlere örnek olacak bir
kayıt;
create table oyuncular (
oyuncu_no int,
oyuncular1 varchar (50),
oyuncular2 varchar (50))
insert into oyuncular values (1,'beren saat', 'kenan
imirzalioğlu')
insert into oyuncular values (2,'can dündar','melike ipek
yalova')
insert into oyuncular values (3,'duygu çetinkaya','dilara
öztunç')
insert into oyuncular values (4,'şafak sezer','çağatay
ulusoy')
insert into oyuncular values (5,'selin şekerci','serenay
sarıkaya')
insert into oyuncular values (6,'cem yılmaz','demet
özdemir')
select * from oyuncular
create table film (
film_no int,
film varchar (100))
insert into film values (1,'karanlık yol')
insert into film values (2,' 24 ')
insert into film values (5,'koleksiyoncu')
insert into film values (8,'beni unutma')
insert into film values (9,'aşk tesadüfleri sever')
insert into film values (11,'incir reçeli')
select * from film
'İnner join
select * from film
inner join oyuncular
on film_no=oyuncu_no
'Full join
select * from film
full join oyuncular
on film_no=oyuncu_no
'Cross join
select * from film cross join oyuncular
'Outer join
select * from film right outer join oyuncular
on film_no=oyuncu_no
Hiç yorum yok:
Yorum Gönder