Veritabanı Yönetim Sistemleri-I

Slides:



Advertisements
Benzer bir sunumlar
Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
Advertisements

VTYS Öğr. Gör. Engin DUTAR
Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
KARMAŞIK SORGULAR.
KARMAŞIK SORGULAR.
SQL (Structured Query Language)
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ı
SQL’e Giriş.
SQL Komutlar 2 Sibel SOMYÜREK.
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
SQL de Değişken Tanımlama
Görsel Programlama II Ders 6 Öğr.Gör. Mustafa KARABULUT.
SQL Komutlar 4 Fahri YILMAZ.
Veritabanı Yönetim Sistemleri-I
VERİ TABANI ve YÖNETİMİ
Alt Sorgular Veritabanı 2.
Tek Tablo İçinde Sorgulamalar
Fonksiyonlar Hafta 4.
T-SQL-2.Konu Akış Kontrolleri.
VERİ TABANI ve YÖNETİMİ
Görsel Programlama II Ders 8 Öğr.Gör. Mustafa KARABULUT.
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
10 Gruplandırarak Sorgulama
VTYS Öğr. Gör. Engin DUTAR
MySQL, SQL ve PHP Öğr.Gör.Şükrü KAYA.
VERİ TABANI VE YÖNETİM SİSTEMLERİ  Birincil Anahtar Türleri  Access Veri Tabanında Bulunan İlişkiler  İlişkileri Tanımlama Bir – Çok İlişkisi Çok –
Departman ve Personel Tablosu Soruları
Veritabanı Yönetim Sistemleri-I
VIEW (BAKIŞ) OLUŞTURMA
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.
PARAMETERELERLE ÇALIŞMAK. Prosedürler, dışarıdan girdi parametreleri (input) ile değer alabilirler ya da dışarıya değer döndürmek üzere çıkış parametreleri(output)
VTYS Öğr. Gör. Engin DUTAR
VERİTABANI ve YÖNETİMİ
SQL’e Giriş ve SELECT Komutu
ÇOKLU TABLOLAR.
MySQL Operatörleri ve Fonksiyonları
Microsoft Office Access Yrd. Doç. Dr. Doğan AYDOĞAN.
Görsel Programlama II Ders 9 Öğr.Gör. Mustafa KARABULUT.
SQL SERVER 2008 Yücel YILDIRIM.
VERİTABANI ve YÖNETİMİ
VERİTABANI ve YÖNETİMİ
Görsel Programlama II Ders 4 Öğr.Gör. Mustafa KARABULUT.
Görsel Programlama II Ders 5 Öğr.Gör. Mustafa KARABULUT.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
VTYS Öğr. Gör. Engin DUTAR
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
SQL’ e Giriş Uzm. Murat YAZICI.
Bir programlama dilinde fonksiyon denildiğinde akla ilk olarak belli işleri yapmak üzere tasarlanmış kod blokları gelir. Fonksiyonlarla çalışmak, tekrarlanan.
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.
Yapısal Sorgulama Dili SQL Hafta 7. TEKRARLI SATIRLARI ÖNLEMEK  DISTINCT komutu ile sorgu sonucunda birden fazla kayıt aynı verileri içeriyorsa tekrarlı.
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.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİ ( Trigger)
İ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
14.DERS Örnekler, Sorular BUKET DOĞAN.
Basit Sorgulamalar Yapmak
DML ile veri ekleme, silme ve değiştirme
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
SQL Server - Stored Procedures
Intersect Tablo1 Sno Ad Soyad 1 Ali Ak 2 Veli Kara 3 Can Mor Tablo2
Sunum transkripti:

Veritabanı Yönetim Sistemleri-I Ders 4 Alt sorgular

Alt sorgular Bir alt sorgu (subquery) bir SELECT sorgusunun içine yazılan ikinci bir SELECT sorgusudur. İç içe yazılan sorgular, aşağıdan yukarıya (veya içten dışa) doğru çalıştırılarak, her sorgunun sonucu diğer sorguya girdi olarak verilir ve en sonunda, en dıştaki sorgunun sonucu alınır Özellikle birden fazla tabloya aynı anda erişilmesi gereken durumlarda alt sorgu ile sorgulamak kolay ve hızlı sonuçlar üretebilir

Alt sorgular Alt sorguların genelde kullanıldığı belli başlı durumlar şunlardır WHERE .. IN anahtar kelimeleri ile bir sorgunun sonucu diğer sorguya şart olarak eklendiği durumlar WHERE … EXISTS ile sorgunun sonucu dönen kayıt olup olmadığı kontrol edilir SELECT listesine yeni sütun olarak eklenen alt sorgular

sip_id alanı siparişi veren müşterinin id bilgisini tutmaktadır Alt sorgular Birinci durum için örnek: Belli bir müşteriye ait (ör: 10000001 kodu müşteri) sipariş edilen ürünlerin listesini almak istenildiği durum siparisler sip_id alanı siparişi veren müşterinin id bilgisini tutmaktadır sip_edilen siparisler ve sip_edilen tabloları birbirlerine sip_num alanı ile mantıksal olarak bağlıdırlar

Alt sorgular Normalde bir müşteriye ait siparişi almak için gereken SQL sorgusu Bu müşteriye ait siparişlerin numaraları (sip_edilen tablosunu sorgulamak için kullanılacak)

Alt sorgular Az önceki sip_num bilgilerini kullanarak bu müşteriye ait siparişlerin ürünlerini sip_edilen tablosundan sorgulayabiliriz

2005, 2009 üretecek ve bu sonucu üst sorguya verecek Alt sorgular Bu iki sorguyu ayrı ayrı elle yazıp, birleştirmek yerine alt sorgu mantığını kullanarak, birinci sorgunun çıktısını otomatik olarak ikinci (üst) sorguya verebiliriz 2005, 2009 üretecek ve bu sonucu üst sorguya verecek

Alt sorgular 2004 içinde sipariş vermiş olan müşterilerin must_ad, must_ulke bilgilerini listeleyen

Alt sorgular Alt sorgu yazarken dikkat edilmesi gerekenler Alt sorgu her zaman tek bir sütun döndürmek zorundadır. Eğer alt sorgu iki sütun içerirse, hata oluşacaktır Alt sorgudan dönen sütun veri türü ile üst sorguda kıyaslanan sütun veri türü aynı veya uyumlu olmalıdır

Alt sorgular Alt sorgularda eşitlik kıyaslanmadığı durumlarda olabilir, böyle zamanlarda diğer SQL operatörleri de kullanılabilir >, >=, <, <=, <> gibi Fakat bu tarz kıyaslamalarda alt sorgu sadece tek bir sütun ve tek bir satır döndürmek zorundadır

Alt sorgular Fiyatı, ürünler tablosundaki ortalama fiyattan daha büyük olan ürünleri listeleyiniz Muhtemel kullanılacak sorgular SELECT * FROM urunler WHERE urun_fiyat > ?????? SELECT AVG(urun_fiyat) FROM urunler

Alt sorgular

Alt sorgular Benzer şekilde En büyük fiyata sahip ürünü listelemek istersek

Alt sorgular WHERE ile birlikte kullanılan alt sorgular birden fazla iç içe sorguyu içerebilir Ör: “BR01” kodlu ürünü sipariş eden müşterilerin adlarını listeleyiniz. musteriler tablosu sorgusu (Verilen müşteri id’lere ait müşterlerin adlarının listelenmesi) Siparisler tablosu sorgusu (Verilen sipariş numaralarını hangi müşteri id’lerin ilişkili olduğunu tespiti) Sip_edilen tablosu sorgusu (BR01 kodlu ürünün dahil olduğu sipariş numaralarının tespiti)

Alt sorgular

Alt sorgular Alt sorguların ikinci türünde, alttaki sorgunun sonuç döndürüp döndürmemesi kontrol edilir. Bu durumda EXISTS operatörü kullanılır Eğer dönen alt sorgu sonuç içeriyorsa TRUE Sonuç içermiyorsa FALSE üreterek WHERE içinde bir şart olarak kullanılır

Alt sorgular Ürünler tablosunda herhangi bir ürünü bulunan satıcıların tüm bilgilerini listelemek istediğimizi düşünelim Herhangi bir satıcının (ör: DLL01 kodlu satıcı) ürünü olup olmadığını veren sorgu SELECT * FROM urunler WHERE satici_id = ‘DLL01’ Bu sorgu sonuç döndürürse ürünü var, sonuç döndürmezse ürünü yok demektir Bu sorgunun tüm satıcıları döndüren listeye adapte edilerek, satıcıların bu şarta göre listelenmesi gerekmektedir

Alt sorgular Alttaki sorguda satici_id üstteki tablodaki satici_id ile kıyaslanıyor (satici_id = s.satici_id) Dolayısıyla alt sorgu, üstteki tablonun her satırı için ayrı ayrı çalıştırılarak, ayrı ayrı sonuçlar üretiyor

Alt sorgular Benzer mantıkla, bu listenin tam tersini, yani ürünü olmayan satıcıları da NOT EXISTS ile alabiliriz

Alt sorgular Aynı mantıkla bulabileceğimiz Siparişi olan ve Siparişi olmayan müşterilerin listelenmesi için gerekli sorgular

Alt sorgular Üçüncü alt sorgu türü SELECT listesine ayrı bir sütun olarak alt sorguların sonucunun eklendiği durumlardır Bu durumdaki alt sorgular Tek değer (tek satır ve tek sütun) döndürmek zorundadır Herhangi bir türde değer içerebilir Bu tarz alt sorgulardan SELECT listesine istenen sayıda eklenebilir

Alt sorgular Her müşterinin id, ad değerleri yanında, toplam sipariş sayısını yanına yazdıralım Alt sorgu her satır için ayrı ayrı çalışacak ve COUNT(*) sonucunu üretecektir

Alt sorgular Her satıcının adı ve ürün sayısı, ortalama ürün fiyatı listelenmesi 1. Alt sorgu (adet) 2. Alt sorgu (ortalama fiy.)