VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar

Slides:



Advertisements
Benzer bir sunumlar
Hazırlayan : Öğr. Gör. Fahri YILMAZ
Advertisements

Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Verileri gruplayarak analiz
KARMAŞIK SORGULAR.
SQL (Structured Query Language)
KARMAŞIK SORGULAR.
SQL (Structured Query Language)
SQL Structured Query Language (Yapısal sorgulama dili)
Karmaşık (İç içe) SELECT Sorguları
Normalizasyon Kuralları & SQL
SQL de Değişken Tanımlama
SQL Komutlar 4 Fahri YILMAZ.
Veritabanı Yönetim Sistemleri-I
VERİ TABANI ve YÖNETİMİ
Alt Sorgular Veritabanı 2.
5 Sorgulama İşlemleri Veritabanı 1.
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
SQL Sorgu Örnekleri.
Fonksiyonlar Hafta 4.
Operatörler.
Bölüm 3 – Yapısal Programlama
T-SQL-2.Konu Akış Kontrolleri.
BÖLÜM 6 SQL SERVER KOMUTLARI.
10 Gruplandırarak Sorgulama
Yapısal Program Geliştirme – if, if-else
SQL (STRUCTURED QUERY LANGUAGE)
VTYS Öğr. Gör. Engin DUTAR
MySQL, SQL ve PHP Öğr.Gör.Şükrü KAYA.
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
VERİTABANI ve YÖNETİMİ
SQL’e Giriş ve SELECT Komutu
SQL de Değişken Tanımlama
ÇOKLU TABLOLAR.
MySQL Operatörleri ve Fonksiyonları
Bölüm 2 – Kontrol Yapıları
SQL SERVER 2008 Yücel YILDIRIM.
Çoklu dallanma seçimi: switch
Veritabanı Yönetim Sistemleri-I
SQL Komutları (2) Uzm. Murat YAZICI.
VTYS Öğr. Gör. Engin DUTAR
SQL’ e Giriş Uzm. Murat YAZICI.
Bilgisayar Mühendisliği Bölümü
T-SQL 3.K ONU Tablo Tipi Değişkenler. T ABLO TIPI DEĞIŞKENLER KULLANMAK T-SQL de dizi tanımlama nasıl yapılır? Bu sorunun cevabı olarak tablo tipi değişkenleri.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Yapısal Sorgulama Dili SQL Hafta 7. TEKRARLI SATIRLARI ÖNLEMEK  DISTINCT komutu ile sorgu sonucunda birden fazla kayıt aynı verileri içeriyorsa tekrarlı.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
 Stored Procedure kısaca SQL sorgularını isteğimize göre hazırlayıp kullanıma hazır veri tabanı nesnesine çeviren bir araçtır.  Stored Procedure, Türkçeye.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İNDEKS.
Tablo Tipi Değişkenler
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
Veri Tabanı Yönetim Sistemleri I
SQL Server - Stored Procedures
SQL Server - Views.
Intersect Tablo1 Sno Ad Soyad 1 Ali Ak 2 Veli Kara 3 Can Mor Tablo2
Transaction.
Sunum transkripti:

VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar 10.BÖLÜM

Uygulamada, bir sorgudan elde edilen sonuç, bir diğer sorguyu ilgilendirebilir. Bu gibi durumlarda alt sorgular ya da bir başka deyişle iç sorgular kullanılır. Alt sorgu, SELECT deyimi içerisinde ikinci bir SELECT deyiminin kullanılması ile oluşturulur. İkinci select deyimi parantez içinde yer almalıdır.

Dikkat Alt sorgular veri tabanı performansı açısından daha sonra düşünülmesi gereken çözümler arasında yer almalıdır.

Alt sorgunun kullanım şekli aşağıda yer almaktadır: SELECT liste FROM tablo WHERE ifade işleç (SELECT liste FROM tablo);

Alt Sorgularla ilgili genel kurallar Alt sorgularda sütun sayısı birden fazla olamaz. Alt sorgular parantez içinde yazılır. Alt sorgularda Order By kullanılamaz. Order By ve Group By içerisinde alt sorgu kullanılmaz. Alt sorgulara takma isimler verilerek sütun isimleri yazılır. Alt sorgu = ifadesi ile karşılaştırılmışsa alt sorgudan dönen tek değer olmalıdır.Eğer birden fazla değer dönüyorsa in veya not in kullanılmalıdır.

IN ve NOT IN alt sorgularla çalışırken kullanılabilir. Bildiğimiz gibi IN içinde anlamını vermekte, NOT IN içinde olmayan anlamını vermektedir.

Genellikle karmaşık sorguları parçalamak için veya sorguyu daha rahat tanımlayıp parça parça test edebilmek için veya daha başka bir nedenden ötürü bir sorgunun içinde başka bir sorguya yer vermek gerekebilir. Bu durumda, içiçe geçmiş SELECT ifadelerinden yararlanılır. İçiçe geçmiş her bir SELECT ifadesinin parantezlerle belirtilmiş olması gerekir. İçiçe geçmiş SELECT ifadelerini iki grupta inceleyeceğiz.

TEKİL SONUÇ DÖNDÜREN ALT SORGULAR Alt sorgu sadece bir tek değer döndürüyorsa, buna tekil değer döndüren alt sorgu denir. Alt sorgular bazen kayıtları filtrelemek için kullanılır. Grupsal fonksiyonlar kullanılarak elde edilebileceği gibi, WHERE kısmında verilecek bir filtre neticesinde de tekil bir sonuç döndürmesi sağlanabilir.

Vestel markasına ait ürünleri bulalım.

Ürünlerin ortalama fiyatlarını, isimlerini ve kodlarını görüntüleyecek sorguyu yazalım.

ÇOKLU SONUÇ DÖNDÜREN ALT SORGULAR Bazı durumlarda altsorgu birden fazla sonuca dönüyor olabilir. Bu durumda sorgular IN deyimi ile bağlanır. Örnek: Markakodu 10 dan küçük olan markalara ait ürünlerin listesini bulalım

Her ne kadar çoklu kayıt döndüren alt sorgularla karşılaştırma işaretleri kullanılamasa da, bazı durumlarda ufak ayarlamalarla bu işaretler kullanılabilir. Bunun için ANY ve ALL deyimlerinden yararlanılır.

ANY, alt sorgunun döndürdüğü çoklu sonuçlardan en az birinin sağladığı bir şartı vermek için kullanılırken ALL da alt sorgunun döndürdüğü bütün sonuçların teker teker sağlaması gereken bir karşılaştırma şartı vermek için kullanılır.

ŞART TAM BURASI İçerdeki sorgudan dönen değerlerin tamamından büyük olanlar, dışarıdaki sorgu tarafından seçilir.

Türetilmiş Tablolar Buraya kadar içiçe sorguları hep bir sütun türetmek için FROM dan sonrs veya WHERE ifadesinden sonra kıyas yapmak için kullandık.Oysa iç içe sorgular, bunların dışında bir sorgu sonucunun tabloymuş gibi tekrardan sorgulanması için de kullanılabilir. Buna Türetilmiş Tablolar (Derived Tables) denir, alt sorgularla çalışmanın özel bir halidir.

Türetilmiş Tablolar Türetilmiş tablolar, bir sorguda doğrudan tablo adı vermek yerine, başka bir sorgunun türettiği sonucu bir tabloymuş gibi kabul edip yeniden sorgulamak maksatlı kullanılırlar. Genel kullanımı: SELECT ifadeler FROM (SELECT ifadeler [AS] TuretimisTabloyaTakmaAd [(SutunaTakmaAd,…)]

SQL Server da bir sorgunun sonucu türetilmiş tablo olarak kullanılacaksa, hesaplanmış bütün sütunlara bir takma ad verilmeli.

İLİNTİLİ (CORELATED) ALTSORGULAR İlintili altsorrgular, dışarıdaki sorgunun döndürdüğü her bir satır için, içerideki sorgunun tekrarladığı sorgulara verilen addır. Alt sorgular kullanırken, alttaki her sorgu, üstteki sorgularda kullanılan tablo isimlerine erişip ilgili satırdaki verileri çekebilir. Ancak bu programlama mantığındaki DÖNGÜ yapıları ile özdeştir ve çok fazla yük oluşturur.

Exists , not exists EXISTS alt sorgudan dönen değerlerin olup olmadığını kontrol eder. Exists kullanıldığında içerideki sorguda bir veya daha fazla kayıt dönerse, dışarıdaki sorgu çalıştırılır. (true değer üretir) Hiç kayıt dönmezse dışarıdaki sorgu çalıştırılmaz. False değer üretir.

Örnek: Ürünlerden en az bir kere satın almış olanların listesini bulalım

Hiç alışveriş yapmamış kişilerin listesi

ödev Veri Tabanı I kitabı sayfa 352 de bulunan çalışma sorularını yapınız.