KARMAŞIK SORGULAR.

Slides:



Advertisements
Benzer bir sunumlar
VTYS Öğr. Gör. Engin DUTAR
Advertisements

Verileri gruplayarak analiz
SQL (Structured Query Language)
KARMAŞIK SORGULAR.
SQL (Structured Query Language)
SQL FONKSİYONLARI.
SQL Structured Query Language (Yapısal sorgulama dili)
En ucuzundan en pahalısına doğru sıralanmış olarak “Cep Telefonları” kategorisindeki tüm ürünlerin isimleri “Spor” kategorisinde ürünleri listelenen “İstanbul”
Karmaşık (İç içe) SELECT Sorguları
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
Veri Tabanı I.
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.
Tek Tablo İçinde Sorgulamalar
SQL Sorgu Örnekleri.
Fonksiyonlar Hafta 4.
Operatörler.
T-SQL-2.Konu Akış Kontrolleri.
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
10 Gruplandırarak Sorgulama
SQL (STRUCTURED QUERY LANGUAGE)
VTYS Öğr. Gör. Engin DUTAR
Departman ve Personel Tablosu Soruları
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
SQL Komutlar 3 Sibel SOMYÜREK.
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
Formüller Mustafa AÇIKKAR.
VERİTABANI ve YÖNETİMİ
=>SÖZCÜKTE ANLAM<=
SQL’e Giriş ve SELECT Komutu
ÇOKLU TABLOLAR.
MySQL Operatörleri ve Fonksiyonları
SQL SERVER 2008 Yücel YILDIRIM.
VeriTabanı Uygulama.
Veri Tabanı Yönetim Sistemleri 1 Ders 6 Çok Tablolu Sorgular
Veri Tabanı Yönetim Sistemleri 1 Ders 5 SQL'e Giriş
Veritabanı Yönetim Sistemleri-I
SQL Komutları (2) Uzm. Murat YAZICI.
=>SÖZCÜK TÜRLERİ<=
VTYS Öğr. Gör. Engin DUTAR
=> SÖZCÜKTE ANLAM <=
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name aggregate : birleştirme fonksiyonları.
SQL’ e Giriş Uzm. Murat YAZICI.
VERİTABANI YÖNETİM SİSTEMLERİ 1
Veritabanı Kavramları
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.
GROUP BY HAVING ORDER BY İbrahim Onur Sığırcı. Ö RNEK 1 – G RUP F ONKSIYONLARı * «Sales» departmanında kaç kişinin çalıştığını, toplam maaşlarını, en.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Veri Tabanı Yönetimi Dersi 5
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
© 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.
SQL GROUP BY HAVING.
GROUP BY HAVING ORDER BY LIMIT
SQL (STRUCTURED QUERY LANGUAGE)
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
Intersect Tablo1 Sno Ad Soyad 1 Ali Ak 2 Veli Kara 3 Can Mor Tablo2
Sunum transkripti:

KARMAŞIK SORGULAR

Alt sorgu kavramı Karmaşık sorgular, bir sorgu içinde birden fazla SELECT deyiminin kullanılması ile elde edilir. Karmaşık sorgularda, ana sorgu bir başka alt sorgudan elde edilen sonuçları kullanır. Uygulamada, bir sorgudan elde edilen sonuç, diğer bir sorguyu ilgilendirebilir. Bu gibi durumlarda alt sorgular (iç sorgular) kullanılır.

Alt sorgu kavramı Örnek: “Hangi personelin ücreti “HALİT” isimli personelin ücretinden daha fazladır?” bu problemi iki farklı sorguya ayırmak mümkündür. Sorgu1. “HALİT” isimli personelin aylık ücreti nedir? Sorgu2. Hangi personelin ücreti “HALİT” isimli personelin ücretinden daha fazladır?

Alt sorgunun tanımlanması Sorgu biçimi: SELECT liste FROM tablo WHERE ifade işleç (SELECT liste FROM tablo) Tanımda görüldüğü gibi, iki SELECT deyimi ile bir farklı sorgu tanımlanmıştır. Bu iki sorgu birbirine WHERE koşul sözcüğü içinde bağlanmıştır. Bir alt sorgu WHERE, HAVING, FROM sözcükleri içinde kullanılabilir.

Alt sorgu kavramı Örnek: Personel numarası “110” olan personelin ücretinden daha fazla ücret alan personel isimlerini listelemek için: SELECT ADI, ÜCRET FROM PERSONEL WHERE ÜCRET > (SELECT ÜCRET FROM PERSONEL WHERE PERSONEL_NO=110);

Alt sorgu düzenleme kuralları Alt sorgu, ana sorgu içindeki karşılaştırma işlecinin sağında yer almalıdır. FROM sözcüğü içinde tanımlanan sorgular bu kuralın dışındadır. Bir alt sorgu parantez işaretleri içinde yer almalıdır. Alt sorgu ORDER BY sözcüğü içeremez. Bu sorgu sadece ana sorgu içinde yer alabilir. Alt sorgularda iki tür karşılaştırma işleci bulunabilir: a) Tek satır işleçleri b) Çoklu satır işleçleri

Tek satır alt sorguları Sadece bir değer döndüren alt sorgulardır. İç taraftaki SELECT deyiminden sadece tek bir değer elde edilir. İşleç Anlamı = eşit > büyük >= büyük veya eşit < küçük <= küçük veya eşit <> eşit değil

Tek satır alt sorguları Örnek: Personel numarası “155” olan personelle aynı göreve sahip olan ve “300” numaralı personelin ücretinden daha fazla ücret alan personeli listelemek istiyoruz. SELECT ADI, GÖREVİ, ÜCRET FROM PERSONEL WHERE GÖREVİ= (SELECT GÖREVİ WHERE PERSONEL_NO=155) AND ÜCRET> (SELECT ÜCRET WHERE PERSONEL_NO=300);

Grup fonksiyonlarının kullanımı Grup fonksiyonları sadece bir değer döndürdüğü için, bu tür fonksiyonlar tek satır alt sorgularında kullanılabilir. Örnek: Personel arasında ortalama ücretten daha fazla ücret alanları listelemek için: SELECT ADI, ÜCRET FROM PERSONEL WHERE ÜCRET > (SELECT AVG(ÜCRET) FROM PERSONEL);

Having ile grup koşullarının tanımlanması Ana sorgu grup fonksiyonu içeriyorsa, doğal olarak grup koşullarının tanımlanması gerekebilecektir. Yani HAVING sözcüğü de kullanılacaktır. Örnek: En fazla ücret alan personelinin ücreti, “30” numaralı bölümün ortalama ücretinden daha fazla olan bölümleri öğrenmek için: SELECT BÖLÜM_NO, MAX(ÜCRET) AS “EN YÜKSEK ÜCRET” FROM PERSONEL GROUP BY BÖLÜM_NO HAVING MAX(ÜCRET) > (SELECT AVG(ÜCRET) WHERE BÖLÜM_NO=30);