Çok tablolu sorgulamalar



Benzer belgeler
SQL (Structured Query Language)

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)

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

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

VERİTABANI. SQL (Structured Query Language)

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

SQL Komutları (2) Uzm. Murat YAZICI

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

Veritabanı. SQL (Structured Query Language)

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

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

Birden Çok Tabloda Sorgulama (Join)

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ü

SQL Kod ile Tablo Oluşturma

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

VERİTABANI ve YÖNETİMİ

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

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

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

Veritabanı Yönetim Sistemleri

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

SQL e Giriş. Uzm. Murat YAZICI

Veri Tabanı Tasarım ve Yönetimi

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

DML işlemleri. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı May Öğr. Gör. Murat KEÇECĠOĞLU

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

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

SORGULAR VE ÇEŞİTLERİ II

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

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

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

Veri Tabanı II Alt Sorgular

VERİTABANI Veritabanı Sorgulama

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

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

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

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

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.

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

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

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

YAPISAL SORGULAMA DİLİ (SQL)

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

VERİ TABANI YÖNETİMİ Hafta1

5 Sorgulama İşlemleri. Veritabanı 1

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

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

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

ACCESS PLATFORMUNDA SQL

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

Veri Tabanı Hafta Dersi

15 Aralık 2011 / Perşembe.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

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

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

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

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

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

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

SQL Query and Table Application

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

SQL TRIGGERS (Tetikleyiciler)

VeriTabanı Uygulamaları

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

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

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

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

VERİTABANI Veritabanı Yönetimi

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

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

PostgreSQL ve PL/pgSQL

İNTERNET TABANLI PROGRAMLAMA- 12.ders

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

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

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

PostgreSQL ve PL/pgSQL

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Veri Tabanı Hafta Dersi

SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.

BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ DERSİ

Veri Tabanı Programlamaya Giriş

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

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

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş

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

10 Birden Fazla Tablo Üzerinde Sorgulama

SQL DİĞER Deyimler ve Komutlar

5 Sorgulama İşlemleri. Veritabanı 1

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

Transkript:

Çok tablolu sorgulamalar Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları birbirine bağlayan alanların birbirine eşit olması kriteri verilmelidir. WHERE kısmında böyle bir kriter verilmezse, iki tablonun tüm kayıtları birbiri ile eşleştirilecek (kartezyen çarpım) ve ortaya istenilenden daha çok sayıda kayıt çıkacaktır.

2 tablolu sorgulama örneği PERSONEL tablosundaki BOLUM (FK) alanı ile BOLUMLER tablosundaki BOLUM_NO (PK) alanı birbirine bağlıdır. Eğer personel bilgileri görüntülenirken personelin çalıştığı bölümün numarasını değil de adını göstermek istersek bu adı BOLUMLER tablosundan elde etmeliyiz. Bu nedenle iki tablonun ismini de FROM kısmında kullanmalıyız: SELECT AD, SOYAD, GOREV, BOLUM_ADI FROM PERSONEL, BOLUMLER WHERE BOLUM = BOLUM_NO NOT: Bu satır yazılmadığında görüntülenen kartezyen çarpıma dikkat!

Alan isimlerinin aynı olması durumu Eğer bir çok tablolu sorgulamada ilişkinin her iki tarafındaki alanlar aynı isimde ise; alan isimlerinden önce, o alanın ait olduğu tablo ismi de yer almalıdır. Örneğin PERSONEL tablosundaki alan ismi de BOLUM_NO olsaydı sorgu şu şekilde yazılmalıydı: SELECT AD, SOYAD, GOREV, BOLUM_ADI FROM PERSONEL, BOLUMLER WHERE PERSONEL.BOLUM_NO = BOLUMLER.BOLUM_NO Aynı sorgu şu şekilde de yazılabilirdi: SELECT AD, SOYAD, GOREV, BOLUM_ADI FROM PERSONEL P, BOLUMLER B WHERE P.BOLUM_NO = B.BOLUM_NO

3 tablolu sorgulama örneği Öğrencilerin adı, soyadı, aldıkları derslerin adı ve bu derslerden başarı notları görüntülenmek istenirse: SELECT AD, SOYAD, DERS_ADI, VIZE*0.3 + FINAL*0.7 AS BN FROM OGRENCILER, NOTLAR, DERSLER WHERE OGR_NO = OGRENCI AND DERS = DERS_KODU

İç içe SELECT ifadeleri Eğer SELECT sonrasında yazılan alanların hepsi aynı tabloda, fakat kriter olarak kullanılan alanlar onlardan farklı bir tabloda ise iç içe SELECT ifadeleri kullanılabilir. Aşağıdaki SQL cümlesi Fizik dersini alan öğrencilerin bilgilerini gösterir: SELECT OGR_NO, AD, SOYAD FROM OGRENCILER WHERE OGR_NO IN ( SELECT OGRENCI FROM NOTLAR WHERE DERS IN ( Fizik dersinin bir ders kodu olacağı için bu satırdaki IN yerine = kullanılabilirdi. SELECT DERS_KODU FROM DERSLER WHERE DERS_ADI = Fizik ))

İç içe SELECT ifadeleri Önceki örneği çok tablolu sorgulama türünde de yapabilirdik: SELECT OGR_NO, AD, SOYAD FROM OGRENCILER, NOTLAR, DERSLER WHERE OGR_NO = OGRENCI AND DERS_NO = DERS AND DERS_ADI = Fizik Fakat bu sorgu tabloların kartezyen çarpımına neden olacağı için muhtemelen daha yavaş çalışacaktır.

INSERT Bir tabloya kayıt eklerken kullanılan DML komutudur. Aşağıdaki DML ifadesi HOCALAR tablosuna kayıt ekler: INSERT INTO HOCALAR VALUES (15, Ahmet, Çalışkan, Prof. Dr. ) Veri türü karakter değilse tırnak kullanılmaz Eğer eklenecek kaydın sadece belirli alanlarına veri girilecekse (Ör. HOCA_NO alanı otomatik sayı veri türünde ise o alana veri giremeyiz), tablo adından sonra bu alanlar belirtilmelidir: INSERT INTO HOCALAR (AD, SOYAD, UNVAN) VALUES ( Ahmet, Çalışkan, Prof. Dr. )

DELETE Bir tablodaki bir yada daha çok kaydı silmek amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların silineceği WHERE sözcüğünden sonra verilen kriter ile belirlenir. Aşağıdaki DML ifadesi NOTLAR tablosundan 2007-2008 öğretim yılına ait tüm kayıtları siler: DELETE FROM NOTLAR WHERE DERS_YILI = 2007-2008 Eğer WHERE sözcüğü hiç kullanılmaz ise tablodaki tüm kayıtlar silinir: DELETE FROM NOTLAR

UPDATE Bir tablodaki kayıtların güncellenmesi amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların güncelleneceği WHERE sözcüğü ile verilen kriter ile, kayıtlardaki güncellenecek alanlar ise SET sözcüğü sonrasında yeni değerlerinin atanması ile belirtilir. Aşağıdaki DML ifadesi PERSONEL tablosundaki Pazarlama bölümünde çalışanların maaşlarını %10 oranında arttırır. UPDATE PERSONEL SET MAAS = MAAS * 1.1 WHERE BOLUM = (SELECT BOLUM_NO FROM BOLUMLER WHERE BOLUM_ADI = Pazarlama )