Birden Çok Tabloda Sorgulama (Join)



Benzer belgeler
Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Kişiler tablosundan AD kolonu yusuf olan tüm satırları siler. ORDER BY deyimi bir tablodan SELECT ile seçilen verileri sıralamak için kullanılır.

SQL (Structured Query Language)

10 Birden Fazla Tablo Üzerinde Sorgulama

Emrah UYSAL 1

Birleştirme (JOIN) işlemi

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Çok tablolu sorgulamalar

Oracle Database 11g: Introduction to SQL

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

BÖLÜM- 5: BİRDEN FAZLA TABLODAN VERİ GETİRMEK

Veritabanı Yönetim Sistemleri

İNTERNET TABANLI PROGRAMLAMA- 12.ders

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

Veri Tabanı Hafta Dersi

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

İLİŞKİSEL VERİTABANLARINDA BİRLEŞTİRME

Veritabanı. SQL (Structured Query Language)

SQL Query and Table Application

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Bilgisayar Uygulamaları. MySql

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

VERİTABANI. SQL (Structured Query Language)

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

SQL DİĞER Deyimler ve Komutlar

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

SQL Kod ile Tablo Oluşturma

Sql Komutlarından Select Sorgusu Ve Myadmin Üzerinden Anlatımı

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

5 Sorgulama İşlemleri. Veritabanı 1

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

VERİ TABANI YÖNETİM SİSTEMLERİ I

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

SQL (Structured Query Language)

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

KISITLAMALAR (CONSTRAINT)

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

BÖLÜM -2: VERİLERİ SINIRLAMA VE SIRALAMA

SQL e Giriş. Uzm. Murat YAZICI

VERİTABANI ve YÖNETİMİ

Veri Tabanı Tasarım ve Yönetimi

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Veri Tabanı II Alt Sorgular

EĞİTİM : VERİ TABANI SORGULAMA İŞLEMLERİ VE PROGRAMLAMA NESNELERİ. Bölüm : Veri Sorgulama İşlemleri. Konu : Veri Sorgulama

VERİTABANI Veritabanı Sorgulama

VERİ TABANI YÖNETİM SİSTEMLERİ I

İlişkisel Veri Tabanları I

Alper VAHAPLAR

SORGULAR. Öğr.Gör.Volkan Altıntaş

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir.

YAPISAL SORGULAMA DİLİ (SQL)

Veritabanı Tasarımı. SQL Deyimi Anatomisi

5 Sorgulama İşlemleri. Veritabanı 1

Microsoft SQL Server Sorgulama

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı Tasarımı. Join Yantümceleri

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Mysql Veritabanı Komutları

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Oracle da kullanılan veri tipleri:

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

BTP203 VERİTABANI YÖNETİM SİSTEMLERİ

SQL Komutları (2) Uzm. Murat YAZICI

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

ACCESS PLATFORMUNDA SQL

Veri Tabanı Yönetim Sistemleri Bölüm - 7

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

Veri Tabanı Hafta Dersi

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Bölüm 3: DML Veri İşleme Dili

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

Veri Tabanı Yönetim Sistemleri Bölüm - 4

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Bölüm 4: DDL Veri Tanımlama Dili

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Sorgu penceresine sorgu yazılır. Örnek olarak yazılan SELECT * FROM personel ifadesi, personel tablosundaki bütün kayıtların listelenmesini sağlar.

Veritabanına Uygulanması

Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır.

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

Veritabanı Tasarımı. Alt Sorgu Temelleri

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Veritabanı Tasarımı. Çoklu Satır Alt Sorgular

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Veri Tabanı Yönetim Sistemleri Bölüm - 5

Transkript:

Birden Çok Tabloda Sorgulama (Join) Join(Birleştirici), iki ya da daha fazla tabloyu aynı anda sorgulayarak bir sonuç tablosu (result table) oluşturmaya yarar. Örneğin: İki tabloyu birleştirici ile birleştirerek sonuç tablosu oluşturmak istenirse her iki tabloda da aynı olan alanlardan yola çıkılır. Böylece alanları kullanarak istenilen sonuç tablosu oluşturulabilir. 3 tip birleştirici (join) kullanılır: Inner Join (iç birleştirici) Outer Join (dış birleştirici) Cross Join (çapraz birleştirici) Bu birleştiriciler dışında SELECT ifadesini kullanarak iki ya da daha fazla tablo üzerinde sorgulama yapılabilir. SELF JOIN kullanarak bir tablonun kendiyle birleştirilmesi sağlanabilir. Birleştiricilerde kullanılan JOIN ifadesi hangi tabloların birleştirileceğini belirler. ON ifadesi ise tabloların hangi alanlar üzerinden birleştirileceğini belirler. Birleştirilen alanların birincil anahtar ya da ikincil anahtar olması tercih edilir. Ortak alanların aynı veri tipine sahip olmaları gerekir. Karışıklık yaşanmaması açısından alan isimleri tabloların isimleri ile birlikte yazılır ve tablo_adı.kolon_adı şeklinde ifade edilir. Inner Join INNER JOIN, iki ya da daha fazla tabloda ortak olan iki alandaki değerleri kontrol ederek tabloları birleştirir. INNER JOIN, SQL sunucusunda varsayılan olan JOIN dir. INNER JOIN yerine sadece JOIN yazmak da yeterlidir. WHERE ifadesi kullanarak oluşturmak istenen sonuç tablosu daha da özelleştirilebilir. JOIN kullanırken "null" değerlerini birleştirme şartı olarak kulanmamak gerekir. Örnek: INNER JOIN ile sorgu yapabilmek için ogrenciler ve bolumler adında iki tablo bulunsun. Belirli bir bölüm adı verilerek iki tablo, daha önceden ilişki kurulmuş kolonları üzerinden INNER JOIN ile birleştirilip, tablolara ait olan bazı kolonlar şu şekilde sorgulanır: Yapılan sorgu sonucunda öğrenciler ve bolumler tablolarından, sorgulanmak istenen ad, soyad, bolum isimli kolonlar sonuç olarak ekrana basılmıştır. Her seferinde tabloadı.kolonadı şeklinde uzun ifadeler yazmamak için her iki tablo için as anahtar kelimesi sayesinde takma isimler (alias) kullanılmıştır. Sonuç olarak bölümü "BOTE" tüm öğrencilerin bazı bilgileri ekranda görülmektedir.

Outer Join FULL JOIN, LEFT OUTER JOIN ve RIGHT OUTER JOIN, ortak alanlar vasıtasıyla birleştirme yaparken birleştirme şartına uymayan satırlarda "null" değeri oluşmasını sağlar. OUTER JOIN sadece iki tablo arasında kullanılır. LEFT OUTER JOIN kullanılırsa ifadenin solunda ismi yazan tabloda istenilen alanda tüm satırlar sonuç tablosunda gösterilir. RIGHT OUTER JOIN kullanılırsa ifadenin sağında ismi yazan tabloda istenilen alanda tüm satırlar sonuç tablosunda gösterilir. FULL JOIN kullanılırsa, her iki tablodan da tüm satırlar çekilerek sonuç tablosunda gösterilir. LEFT OUTER JOIN için kısaca LEFT JOIN, RIGHT OUTER JOIN için de kısaca RIGHT JOIN kullanılır. Örnek: FULL JOIN kullanarak sorgu yapabilmek için ogrenciler ve bolumler tablolarını kullanalım. Daha önceden ilişki kurulmuş bolum_no kolonu üzerinden FULL JOIN ile birleştirilip, tablolara ait olan bazı kolonlar şu şekilde sorgulanır: Yapılan sorgu sonucunda ogrenciler ve bolumler tablolarından, sorgulanmak istenen "ad", "soyad", "bolum_adi" isimli kolonlar sonuç olarak ekranda gösterilmiştir. Sonuç olarak iki tablo bolum_no üzerinden birleştirilerek sorgulanmış ve iki tablodaki tüm satırlar sonuç tablosunda görülmektedir. Sonuç tablosunda bazı bölümlere ait öğrenci bulunmadığı durumda öğrenci tablosunda çekilen kolonlar "null" gözükebilir. Bunun yanı sıra bazı öğrencilerin okuduğu bölümler bolumler tablosunda bulunmadığı için, bolumler tablosundan çekilen kolonlar "null" gözükebilir. Örnek: LEFT OUTER JOIN kullanarak sorgu yapabilmek için ogrenciler ve bolumler tablolarını kullanalım. Daha önceden ilişki kurulmuş bolum_no kolonu üzerinden LEFT OUTER JOIN ile birleştirilip, tablolara ait olan bazı kolonlar şu şekilde sorgulanır:

Yapılan sorgu sonucunda ogrenciler ve bolumler tablolarından, sorgulanmak istenen "ad", "soyad", "bolum_adi" isimli kolonlar sonuç olarak ekranda gösterilmiştir. Sorgu "Left Outer Join" ile yapıldığı için ogrenciler tablosunda tüm satırlar, bolumler tablosunda karşılıkları olmasa da sonuç tablosunda yer almaktadır. Bunun sonucunda o satırlarda bulunan ve bolumler tablosundan gelen kolonlar "null" gözükmektedir. Örnek: RIGHT OUTER JOIN kullanarak sorgu yapabilmek için ogrenciler ve bolumler tablolarını kullanalım. Daha önceden ilişki kurulmuş bolum_no kolonu üzerinden RIGHT OUTER JOIN ile birleştirilip, tablolara ait olan bazı kolonlar şu şekilde sorgulanır:

Yapılan sorgu sonucunda ogrenciler ve bolumler tablolarından, sorgulanmak istenen "ad", "soyad", "bolum_adi" isimli kolonlar sonuç olarak ekranda gösterilmiştir. Sorgu RIGHT OUTER JOIN ile yapıldığı için bolumler tablosundaki tüm satırlar, ogrenciler tablosunda karşılıkları olmasa da sonuç tablosunda yer almaktadır. Bunun sonucunda o satırlarda bulunan ve ogrenciler tablosundan gelen kolonlar "null" gözükmektedir. Cross Join CROSS JOIN tablolar arasında yapılan birleştirme işleminde seçilen alanlar arasındaki tüm kombinasyonları sonuç tablosu olarak vermeyi sağlar. Veritabanlarında fazla kullanılmayan bir yöntem olan CROSS JOIN'in oluşturduğu sonuç tablosunda satır sayısı, alanların kartezyen çarpım sayısı kadardır. Örneğin; ilk alanda 4, ikinci alanda 3 satır varsa 3*4=12 tane satır oluşacaktır. Örnek: CROSS JOIN kullanarak sorgu yapabilmek için ogrenciler ve bolumler adında iki tablo bulunsun. CROSS JOIN ile iki tablo aşağıdaki gibi birleştirilir. Bu şekildeki bir SQL betiği ile ogrenciler ve bolumler tablolarının kolonları kartezyen çarpılmıştır. WHERE kullanılarak sonuçlar filtrelenebilir.

Self Join Bir tablonun kendisi ile JOIN işlemine tabi tutulmasına SELF JOIN adı verilir. Bir tablo içinde bulunan satırlar arasında referans ilişkisi varsa, o tablo için farklı takma adlar (alias) kullanılarak Join sorguları gerçekleştirilebilir. Çok kullanılan bir yöntem değildir. Örnek: SELF JOIN ile sorgu yapabilmek için personel adında bir tablo olsun. SELF JOIN ile bir tablo şu şekilde kendisi ile birleştirilir:

Yapılan sorguda ogrenciler tablosu o1 ve o2 olmak üzere iki takma ad kullanılarak iki bağımsız tablo gibi gösterilmişti. Aynı işlem INNER JOIN anahtar kelimeleri kullanılarak da birleştirilebilir. Burada dikkat edilmesi gereken nokta şudur ki; tek bir personel tablosu mevcuttur. Bunun yan ısıra bir personel diğer bir personelin yöneticisi konumunda olabilir. Bir şekilde satırlar arası referans ilişkileri bulunan tablolardan sorgu yapılırken SELF JOIN kullanılabilir. Union Join ifadelerinin dışında birden çok tabloda sorgu yapmak için kullanılan yöntemlerden biri de UNION anahtar kelimesi ile yapılan sorgulardır. Birden çok SELECT ifadesinin kullanılarak tek sorgulama ile oluşturulamayan sonuç tablolarının yaratılmasını sağlar. Birleştirilmek istenen tabloların belirlenen alanlarının veri tipleri ve tablolardan alınacak sütun sayıları aynı olmalıdır. Alan isimleri ilk SELECT ifadesinde belirlenir. Eğer alan isimlerinde değişiklik yapılacaksa bunun ilk SELECT cümleciğinde yapılması gerekir. Sonuç tablosunda tüm oluşabilecek satırları (aynı satırdan birden çok olsa bile) göstermek için UNION'dan sonra ALL kullanılır. Belli bir alanı referans alarak sıralama yapmak istenirse, ORDER BY ifadesini kullanmak gerekmektedir. Örnek: UNION operatörünün kullanımını görmek adına iki "ogrenciler" ve "bolumler" adında iki tablo olsun. Bu iki tablodaki verilerin tümünü aynı anda union ile listeleyebilir. Sorgu aşağıdaki gibidir.