Oracle Database — SQL Temelleri 7 — Join İşlemleri
Published in
3 min readAug 11, 2016
Herkese Merhaba,
Bu yazımda SQL Join ile sorgulama yapmayı anlatacağım. Verilerin birbiriyle bağlanması (join) sıkça yapılan bir işlemdir. Yeni başlayan birisi için joinler tam birer kargaşadan ibarettir. Konuyu kavrayabilmeniz adına kümelerden esinlenerek anlatacağım.
- Inner Join
- Left Join
- Right Join
- Full Join
Inner Join
Kümelerdeki karşılığı kesişimdir. Yani her iki tabloda olan veriler gelir.
SQL INNER JOIN Syntax:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;veyaSELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;Not: İnner join ile join aynı işi yapar.Örnek:SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.DEPARTMENT_ID
FROM EMPLOYEES E JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID);SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.DEPARTMENT_ID
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID);
Employees ve department tablolarında department_id'leri eşitleyerek inner join sorgusu gerçekleştirdik.
Left Join
Kümelerde sol tarafta olan küme demektir. Yani table 1 tablosundakiler koşulsuz gelir, table 2 tablosundan eşleştirebildiklerini (bu kısımlar kesişim bölümüne karşılık gelir) getirir, eşleştiremezse o alanları NULL olarak getirir.
SQL LEFT JOIN Syntax:SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;veyaSELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
NOT: left outer join yazmadığımızda null sonucları göstermez. Örneği inceleyelim.SELECT e.last_name, e.department_id, d.department_name
FROM employees e LEFT JOIN departments d
ON (e.department_id = d.department_id) ;
Right Join
Kümelerde sağ taraftaki kümedir. Table 2 tablosundaki veriler koşulsuz gelir, Table 1 tablosundan eşleştirebildiklerini (bu kısımlar kesişim bölümüne karşılık gelir) getirir, eşleştiremezse o alanları NULL olarak getirir.
SQL RIGHT JOIN Syntax:SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;VEYASELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
Örnek:SELECT e.last_name, e.department_id, d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id) ;Sağ taraftaki departments tablosunda adı ve id'si boş olanları listeledik.
Full Join
Kümelerde birleşime karşılık gelir. Her iki kümedeki tüm elemanları getirir. Eşleştirebildiklerine ilgili tablolardaki değerleri, eşleştiremediklerini NULL olarak getirir.
SQL FULL JOIN Syntax:SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;Örnek:SELECT e.last_name, d.department_id, d.department_name
FROM employees e FULL OUTER JOIN departments d
ON (e.department_id = d.department_id) ;
Joinlerin kullanımı bu şekildedir. Farklı sorgular yazarak kendinizi geliştirebilirsiniz. Aklınıza takılan olursa çekinmeyin ;)Bir sonraki yazıda görüşmek üzere :)