10 Birden Fazla Tablo Üzerinde Sorgulama



Benzer belgeler
5 Sorgulama İşlemleri. Veritabanı 1

5 Sorgulama İşlemleri. Veritabanı 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Birden Çok Tabloda Sorgulama (Join)

SQL Query and Table Application

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

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

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

Birleştirme (JOIN) işlemi

Veri Tabanı II Alt Sorgular

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

İNTERNET TABANLI PROGRAMLAMA- 12.ders

Veritabanı. SQL (Structured Query Language)

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.

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

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

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

SQL (Structured Query Language)

Cursor. Bir veri tipi olarak da ele alınabilen Transact-SQL Sunucu Cursor şu aşamalardan geçirilerek kullanılır.

SORGULAR VE ÇEŞİTLERİ II

Veri Tabanı Tasarım ve Yönetimi

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

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

Çok tablolu sorgulamalar

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

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

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.

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

Alper VAHAPLAR

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

Bilgisayar Uygulamaları. MySql

SQL DİĞER Deyimler ve Komutlar

VERİTABANI ve YÖNETİMİ

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Veritabanı Yönetim Sistemleri İleri SQL

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

Microsoft SQL Server Sorgulama

Veri Tabanı Hafta Dersi

VERİTABANI. SQL (Structured Query Language)

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

SQL e Giriş. Uzm. Murat YAZICI

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

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

Emrah UYSAL 1

Veri Tabanı Hafta Dersi

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

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

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

SQL (Structured Query Language)

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

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.

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

İleri Seviye Select Cümlecikleri

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

Veritabanı Tasarımı. Join Yantümceleri

ACCESS PLATFORMUNDA SQL

Oracle da kullanılan veri tipleri:

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

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

Mysql Veritabanı Komutları

Veritabanı Tasarımı. SQL Deyimi Anatomisi

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

VERİTABANI Veritabanı Sorgulama

SQL Komutları (2) Uzm. Murat YAZICI

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

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

Veri Tabanı Hafta Dersi

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

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

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

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

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

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

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

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

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

Tekrar. Veritabanı 2

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

SQL Kod ile Tablo Oluşturma

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

1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like

Veri Tabanı Programlamaya Giriş

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ı Yönetim Sistemleri Bölüm - 4

«BM364» Veritabanı Uygulamaları

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

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

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

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

YAPISAL SORGULAMA DİLİ (SQL)

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

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

EROL AKGÜL

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

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

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

enum, struct, union ve typedef Yapıları

Transkript:

10 Birden Fazla Tablo Üzerinde Sorgulama Veritabanı 1 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 1

Tablolarda Takma İsim Kullanma Sorgulama sırasında tablolara kısa takma isim verilerek daha sonraki birleştirme işlemlerinde bu takma ismin kullanılması kolaylık sağlamaktadır. Kullanımı; Select * from tablo_adı takma_isim Örnek; Select ogr.tcno, ogr.ad, ogr.soyad from tbl_ogrenci ogr 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 2

Tabloların Birleştirilmesi Aynı tür değerler içeren iki tablonun birleştirilerek tek bir tablo elde edilmesine birleştirme (join) denir. Birleştirme ihtiyacı normalizasyon kuralları gereği birden fazla tabloya bölünen verilerin tekrar birleştirilmesi için ortaya çıkar. 3 tür temel birleştirici vardır; 1. Inner Join 2. Outer Join I. Left Outer Join II. Right Outer Join III. Full Outer Join 3. Cross Join 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 3

Tabloların Birleştirilmesi Tablo1 Tablo2 Inner Join Tablo1 Tablo2 Tablo1 Tablo2 Tablo1 Tablo2 Left Outer Join Right Outer Join Full Outer Join 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 4

Where İfadesi İle Birleştirme SELECT * FROM tbl_ogrenci ogr,tbl_ogrencinot ogrnot WHERE ogrnot.ogr_id = ogr.ogr_id 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 5

Tablo1 Inner Join Kullanımı; Tablo2 SELECT * FROM Inner Join İki veya daha fazla tablonun ortak sutunlarının içerdiği verileri kontrol ederek birleştirme işlemi yapar. Yani ortak olan verileri gösterir. [Inner] Join = Join Tablo1 join Tablo2 ON tablo1.ortaksutun=tablo2.ortaksutun 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 6

Inner Join öğrenci ve bölüm tablosunu birleştiren sorguyu yazalım SELECT * FROM tbl_ogrenci tbl_bolum ogrno adsoyad bolum_id bolum_id bolumadi 1070901 Ali Coşkun 1 1 Bilgisayar 1070901 Ayşe Mert 1 2 Elektirk 1070901 Kamil Con 3 3 Tesisat tbl_ogrenci JOIN tbl_bolum ON tbl_ogrenci.bolum_id=tbl_bolum.bolum_id ogrno adsoyad bolum_id bolum_id bolumadi 1070901 Ali Coşkun 1 1 Bilgisayar 1070901 Ayşe Mert 1 1 Bilgisayar 1070901 Kamil Con 3 3 Tesisat 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 7

Inner Join öğrenci ve bölüm tablosunu birleştiren sorguyu yazalım tbl_ogrenci tbl_bolum ogrno adsoyad bolum_id bolum_id bolumadi 1070901 Ali Coşkun 1 1 Bilgisayar 1070901 Ayşe Mert 1 2 Elektirk 1070901 Kamil Con 3 3 Tesisat SELECT tbl_ogrenci.adsoyad,tbl_bolum.bolumadi FROM tbl_ogrenci JOIN tbl_bolum ON tbl_ogrenci.bolum_id=tbl_bolum.bolum_id adsoyad bolumadi Ali Coşkun Bilgisayar Ayşe Mert Bilgisayar Kamil Con Tesisat 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 8

Inner Join SELECT tbl_ogrenci.ogrno, tbl_ogrenci.ad, tbl_ogrenci.soyad, tbl_ogrencinot.ders_id, tbl_ogrencinot.notu, tbl_ogrencinot.notgiristarihi FROM tbl_ogrenci JOIN tbl_ogrencinot ON tbl_ogrencinot.ogr_id = tbl_ogrenci.ogr_id 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 9

Inner Join SELECT o.ogrno, o.tcno, o.ad, o.soyad, n.ders_id, n.notu, n.notgiristarihi FROM tbl_ogrenci o JOIN tbl_ogrencinot n ON o.ogr_id = n.ogr_id 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 10

SELECT * Inner Join FROM tbl_ogrencinot n JOIN tbl_ders d ON n.ders_id = d.ders_id tbl_ogrencinot ogrnot _id ogr_id ders_id notu notgiristarihi 3 1 1 90 12.03.2012 4 3 1 60 01.01.2005 5 1 2 70 19.03.2012 6 1 3 75 19.03.2012 7 1 4 40 19.03.2012 8 3 4 100 01.03.2012 9 3 5 20 19.03.2012 11 3 15 80 02.05.2012 tbl_ders ders_ id derskod dersad dersveren 1 BPG 101 VERİTABANI - I Ali Coşkun 2 BPG 102 Bilgisayar Ali Coşkun 3 BPG 103 BİLGİSAYAR DONANIMI Engin Dutar 4 ING 101 İNGİLİZCE - I Ali Rıza Emirbey 5 ING 102 İNGİLİZCE - II Ali Rıza Emirbey 6 TKD 101 TÜRK DİLİ - I Ahmet Savran 7 TKD 102 TÜRK DİLİ - II Ahmet Savran ogrnot_ id ogr_id ders_id notu notgiristarihi ders_id derskod dersad dersveren 3 1 1 90 12.03.2012 1 BPG 101 VERİTABANI - I Ali Coşkun 4 3 1 60 01.01.2005 1 BPG 101 VERİTABANI - I Ali Coşkun 5 1 2 70 19.03.2012 2 BPG 102 Bilgisayar Ali Coşkun 6 1 3 75 19.03.2012 3 BPG 103 BİLGİSAYAR DONANIMI Engin Dutar 7 1 4 40 19.03.2012 4 ING 101 İNGİLİZCE - I Ali Rıza Emirbey 8 3 4 100 01.03.2012 4 ING 101 İNGİLİZCE - I Ali Rıza Emirbey 9 3 5 20 19.03.2012 5 ING 102 İNGİLİZCE - II Ali Rıza Emirbey 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 11

Left Outer Join Tablo1 Tablo2 Left Outer Join Kullanımı; SELECT * FROM Tablo1 left outer join Tablo2 ON tablo1.ortaksutun=tablo2.ortaksutun 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 12

Left Outer Join öğrenci ve ogrencinot tablosunu birleştiren sorguyu yazalım tbl_ogrenci tbl_ogrencinot ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ayşe Mert 2 1 70 2 1070901 Kamil Con 3 3 60 1 4 56 3 SELECT * FROM tbl_ogrenci o LEFT JOIN tbl_ogrencinot n ON o.ogr_id=n.ogr_id ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ali Coşkun 1 1 70 2 1070901 Ayşe Mert 2 NULL NULL NULL 1070901 Kamil Con 3 3 60 1 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 13

Right Outer Join Tablo1 Tablo2 Right Outer Join Kullanımı; SELECT * FROM Tablo1 right outer join Tablo2 ON tablo1.ortaksutun=tablo2.ortaksutun 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 14

Right Outer Join öğrenci ve ogrencinot tablosunu birleştiren sorguyu yazalım tbl_ogrenci tbl_ogrencinot ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ayşe Mert 2 1 70 2 1070901 Kamil Con 3 3 60 1 4 56 3 SELECT * FROM tbl_ogrenci o RIGHT JOIN tbl_ogrencinot n ON o.ogr_id=n.ogr_id ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ali Coşkun 1 1 70 2 1070901 Kamil Con 3 3 60 1 NULL NULL NULL 4 56 3 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 15

Full Outer Join Tablo1 Tablo2 Full Outer Join Kullanımı; SELECT * FROM Tablo1 full outer join Tablo2 ON tablo1.ortaksutun=tablo2.ortaksutun 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 16

Full Outer Join öğrenci ve ogrencinot tablosunu birleştiren sorguyu yazalım tbl_ogrenci tbl_ogrencinot ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ayşe Mert 2 1 70 2 1070901 Kamil Con 3 3 60 1 4 56 3 SELECT * FROM tbl_ogrenci o FULL JOIN tbl_ogrencinot n ON o.ogr_id=n.ogr_id ogrno adsoyad ogr_id ogr_id not ders_id 1070901 Ali Coşkun 1 1 80 1 1070901 Ali Coşkun 1 1 70 2 1070901 Ayşe Mert 2 NULL NULL NULL 1070901 Kamil Con 3 3 60 1 NULL NULL NULL 4 56 3 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 17

Cross Join Tablo1 Kullanımı; Tablo2 Full Outer Join SELECT * FROM Tablo1 cross join Tablo2 Her iki tablonun tüm satırların görüntülenmesini sağlar. Tabloların ortak sütunu olmasına gerek yoktur. Tabloların satır sayılarının çarpımı kadar sonuç döner. 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 18

Cross Join öğrenci ve bolum tablosunu birleştiren sorguyu yazalım tbl_ogrenci tbl_bolum ogrno adsoyad bolum_id bolum_id bolum 1070901 Ali Coşkun 1 1 bilgisayar 1070901 Ayşe Mert 1 2 Elektrik 1070901 Kamil Con 3 3 Büro SELECT o.adsoyad, b.bolum FROM tbl_ogrenci o CROSS JOIN tbl_bolum b adsoyad bolum Ali Coşkun bilgisayar Ali Coşkun Elektrik Ali Coşkun Büro Ayşe Mert bilgisayar Ayşe Mert Elektrik Ayşe Mert Büro Kamil Con bilgisayar Kamil Con Elektrik Kamil Con Büro 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 19

Ortak Sütunu Bulunmayan Tabloları Birleştirme öğrenci ve bolum tablosunu birleştiren sorguyu yazalım tbl_ogrencinot tbl_harfnot ogr_id notu ders_id harf enkucuk enbuyuk 1 80 1 A1 85 100 1 60 2 A2 75 84 2 70 1 B1 65 74 3 90 3 B2 50 64 SELECT n.ogr_id, n.notu, n.ders_id, h.harf FROM tbl_ogrencinot n JOIN tbl_harfnot h ON n.not between h.enkucuk and h.enbuyuk ogr_id notu ders_id harf 1 80 1 A2 1 70 2 B1 2 60 1 B2 3 90 3 A1 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 20

Sorguların Birleştirilmesi İki Sorgunun Kesişimi (intersect) İki Sorgunun Farkı (except) İki Sorguyu Birleştirme (union) 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 21

INTERSECT 1. Sorgu 2.Sorgu 1. Sorgu intersect 2. Sorgu.A.C.B.D.F.K.E 1.Sorgu sonucu 2.Sorgu sonucu INTERSECT Sonucu : A,B,C,D,K : D,K,F,E : D,K 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 22

Except 1. Sorgu 2.Sorgu.A.D.F.B.K.C.E 1.Sorgu sonucu : A,B,C,D,K 2.Sorgu sonucu : D,K,F,E 1. Sorgu except 2. Sorgu : A,B,C 2. Sorgu except 1. Sorgu : F,E 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 23

UNION ve UNION ALL 1. Sorgu 2.Sorgu.A.C.B.D.F.K.E 1.Sorgu sonucu : A,B,C,D,K 2.Sorgu sonucu : D,K,F,E 1. Sorgu union 2. Sorgu : A,B,C,D,E,F,K 1. Sorgu union all 2. Sorgu : A,B,C,D,E,F,K,D,K 31.07.2012 Pamukkale Üniversitesi Ali Coşkun 24