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

Benzer belgeler
SQL DİĞER Deyimler ve Komutlar

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

Birden Çok Tabloda Sorgulama (Join)

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

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

Veritabanı Yönetim Sistemleri

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 Kod ile Tablo Oluşturma

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

Birleştirme (JOIN) işlemi

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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ü

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

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.

İLİŞKİSEL VERİTABANI. İlişkisel veritabanlarının ortak özelliği verilerin tablolar aracılığı ile tutulmasıdır.

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

VERİTABANI ORGANİZASYONU

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Bilgisayar Uygulamaları. MySql

Veri Tabanı Hafta Dersi

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

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

10 Birden Fazla Tablo Üzerinde Sorgulama

Alper VAHAPLAR

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

KISITLAMALAR (CONSTRAINT)

VERİTABANI ve YÖNETİMİ

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

Veritabanı Tasarımı. SQL Deyimi Anatomisi

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

İNTERNET TABANLI PROGRAMLAMA- 12.ders

VeritabanıYönetimi Varlık İlişki Diyagramları. Yrd. Doç. Dr. Tuba KURBAN

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI

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

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ

SQL e Giriş. Uzm. Murat YAZICI

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)

Veri Tabanı Hafta Dersi

Veritabanı Tasarımı. Join Yantümceleri

İlişkisel Veri Tabanları I

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

Veri Tabanı II Alt Sorgular

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

Veritabanı Tasarımı. Alt Sorgu Temelleri

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

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

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

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

Veritabanı. SQL (Structured Query Language)

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

ACCESS PLATFORMUNDA SQL

SQL (Structured Query Language)

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

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

1 Temel Kavramlar. Veritabanı 1

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

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

SQL Query and Table Application

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

SELÇUK ÜNİVERSİTESİ BOZKIR MESLEK YÜKSEKOKULU VERİTABANI-II DERSİ FİNAL SINAVI

Oracle da kullanılan veri tipleri:

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

Veritabanı ve Yönetim Sistemleri

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

1 Temel Kavramlar. Veritabanı 1

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) -16 Mart 2014 A

Veri Tabanı-I 9.Hafta

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim)-16 Mart 2014 B

SORGULAR VE ÇEŞİTLERİ II

Mysql Veritabanı Komutları

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

BİLİŞİM TEKNOLOJİLERİ

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

Veritabanı ve Yönetim Sistemleri

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

FUTBOL TAKIM ANALİZİ. YZM5510 İş Zekası Ders Projesi. Melih ATASOYLU ( )

Emrah UYSAL 1

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

Veri Tabanı Hafta Dersi

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

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

Like Joker Karakterler, Order By, Group By

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI Veritabanı Sorgulama

SQL Komutları (2) Uzm. Murat YAZICI

Çok tablolu sorgulamalar

MİRSİS BİLGİ TEKNOLOJİLERİ LTD. ŞTİ. MİCROSOFT SQL SERVER VERİTABANI VE SORGULARI

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

Tekrar. Veritabanı 2

- Tablo (Table):Veri saklama için temel yapıdır. Bir veya daha fazla sütundan ve sıfir veya daha fazla satırdan oluşur.

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Cebir ve İlişkisel Hesaplama

SQL NEDİR?... 4 Transact-SQL... 4 SQL Veri İşleme Dili (Data Manipulation Language-DML)... 4 SQL Veri Tanımlama Dili (Data Definition

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

Transkript:

İLİŞKİSEL VERİTABANLARINDA BİRLEŞTİRME Bazı Veri tabanları sadece 1 tablodan oluşmaz. Bunun sebebi genellikle veri tekrarını önlemektir. Bu şekilde oluşturulmuş veri tabanlarında, tablolardaki değerleri birbirleriyle ilişkili bir şekilde kullanabilmek için Tablo Birleştirme işlemi yapılır. Bu birleştirme işlemi 2 farklı tablo için de söz konusu olabilir, ikiden fazla sayıda tablo için de söz konusu olabilir. Dikkat edilmesi gereken nokta, tabloların Primary Key ve Foreign Key ler ile birbirlerine bağlanmış olması gerektiğidir. Birkaç örnek yapmak üzere, 2 farklı tablo oluşturalım ve onları birbirine bağlayalım: Filmler Tablosu ; film_no film_adi tarih imdb_puan tur_id 1 The Shawshank Redemption 1994 9,2 1 2 The Dark Knight 2008 8,8 7 3 Fight Club 1999 8,8 1 4 Forrest Gump 1994 8,6 5 Leon 1994 8,6 1 6 V For Vandetta 2006 8,1 7 7 A Beautiful Mind 2006 8,0 8 Eternal Sunshine of the Spotless Mind 2004 8,4 2 9 Inception 2010 8,8 3 10 Good Will Hunting 1997 8,1 1 Türler tablosu ; tur_id tur_adi 2 Romantik 3 Bilim Kurgu 4 Macera 5 Gerilim 6 Korku 7 Suç

Gördüğünüz gibi tablolar Tur_ID sütunları temel alınarak birbirlerine bağlandı. Bu arada her filmin sadece bir türe sahip olabileceğini varsayarak bu tabloları oluşturdum. Not: Filmler tablosunda bazı filmlere tür belirlemedim, bunun sebebi yazının devamında yer alacak. Tablo birleştirme işlemini 2 farklı yöntem ile yapabilirsiniz ; WHERE ile sorgu koşulu belirleyerek Tablo Birleştirme JOIN komutlarını kullanarak Tablo Birleştirme WHERE ile Sorgu Koşulu Belirleyerek Tablo Birleştirme Şimdi iki tabloyu birleştirerek, filmlerin türlerine ulaşalım. Bunun için WHERE komutu ile birleştirme işlemine bir Birleştirme Koşulu belirlememiz gerekiyor. SELECT filmler.film_adi, filmler_turu.tur_adi FROM filmler, filmler_turu WHERE filmler.tur_id = filmler_turu.tur_id Burada F ve T, tablolar için belirlenmiş kısa adlardır. Eğer birleştirme koşulu belirtilmeseydi, VTYS iki farklı tablodaki her değer için kartezyen çarpım yapacaktı ve 70 farklı sonuç elde edecektik. Dolayısıyla istediğimiz sonuca ulaşamayacaktık. Tablo birleştirme 2 den fazla sayıda tablo için de uygulanabilir. Böyle bir durumda sorgu koşulu giderek büyüyecektir. JOIN komutlarını kullanarak Tablo Birleştirme Tablo birleştirirken, WHERE ile birleştirme koşulu kullanmak yerine JOIN ifadelerini kullanabilirsiniz. Bu ifadeler dörde ayrılı ve şu şekildedir; INNER JOIN LEFT JOIN RIGHT JOIN

Dikkat ettiyseniz yukarıda Türü olmayan filmler var. Sorgu koşulu ile tablo birleştiriyorsanız, türü olmayan filmler sorgu sonucunda bize gösterilmeyecektir. Çünkü Filmler tablosundaki Tur_ID sütununun, Türler tablosunda bir karşılığı olmayacaktır. Fakat Join ifadelerini kullanarak tablo birleştirme yapıyorsanız, türü olmayan filmleri de gösterebilirsiniz. Yani JOIN ifadeleri 2 tablo için eşleşen verileri gösterip göstermeme durumlarına göre ayrılmışlardır. INNER JOIN: 2 tablo için de boş verileri, yani bir tabloda Tur_ID si olan fakat diğerinde olmayan verileri temizler ve göstermez. Aşğıdaki gibi kullanabilirsiniz ; SELECT filmler.film_adi, filmler_turu.tur_adi FROM filmler INNER JOIN filmler_turu ON filmler.tur_id = filmler_turu.tur_id ORDER BY filmler_turu.tur_adi LEFT JOIN: Bu tür birleştirme kullanıldığında ifadenin solundaki tablo (tablo1) belirleyici tablodur. Bu tablonun diğer tabloyla ilişkisi bulunsun veya bulunmasın tüm

satırları listeleyecektir. Sağdaki tabloda ise (tablo2) sadece ilişkili satırlar listelenecektir. Belirleyici tablonun içerdiği değerin diğer tabloda karşılığı yoksa boş olarak yani NULL değer içerir. İlk (Filmler) tablo için boş olan verileri de göstermenizi sağlar. Yani Filmler tablosunda Tur_ID değeri boş olarak gösterilecektir. Aşağıdaki sorgu, türü olmayan filmler dahil tüm filmlerin adlarını, türlerini ve IMDB Puanlarını, IMDB Puanlarına göre sıralayarak listeleyecektir. SELECT filmler.film_adi, filmler_turu.tur_adi, imdb_puan FROM filmler LEFT JOIN filmler_turu ON filmler.tur_id = filmler_turu.tur_id ORDER BY imdb_puan RIGHT JOIN: Bu tür birleştirme kullanıldığında ifadenin solundaki tablo (tablo2) belirleyici tablodur. Bu tablonun diğer tabloyla ilişkisi bulunsun veya bulunmasın tüm satırları listeleyecektir. Sağdaki tabloda ise (tablo1) sadece ilişkili satırlar listelenecektir. Belirleyici tablonun içerdiği değerin diğer tabloda karşılığı yoksa boş olarak yani NULL değer içerir. İkinci (Türler) tablo için boş olan verileri de göstermenizi sağlar. Aşağıdaki gibi kullanabilirsiniz ;

SELECT F.film_adi, T.tur_adi, imdb_puan FROM filmler F RIGHT JOIN filimler_turu T ON F.tur_id = T.tur_id ORDER BY imdb_puan Sonuç Olarak; Tablo birleştirme işlemini 2 farklı şekilde yapabilirsiniz; WHERE ile sorgu koşulu kullanmak ve JOIN ifadelerini kullanmak. WHERE ile sorgu koşulu oluşturmak için 2 tablonun Primary Key ve Foreign Key sütunları baz alınır ve onlar üzerinden birleştirme işlemi yapılır. JOIN ifadeleri ile tablo birleştirilirken eşleşme durumları önemlidir. Eşleşme durumlarına göre üçe ayrılmaktadırlar: INNER, LEFT, RIGHT.