VYS08

BSM211 Veritabanı Yönetim Sistemleri - Celal ÇEKEN, İsmail ÖZTEL, Veysel Harun ŞAHİN

Temel SQL (SQL DDL Komutları; İndeks (Index), Kalıtım, Tekli Bağıntı, SQL DML Komutları; Görünüm (View), Çoklu Satır Fonksiyonları, Gruplama)

Konular

  • İndeks (Index)

  • Kalıtım

  • Tekli Bağıntı / Özyineli Birleştirme

  • Görünüm (View)

  • Çoklu Satır Fonksiyonları

  • Gruplama

İndeks

  • Ayrıntılar için https://github.com/celalceken/DatabaseManagementSystems/blob/master/VYS04.md bağlantısına bakınız.

CREATE TABLE "Musteriler" (
	"musteriNo" SERIAL NOT NULL,
	"adi" CHARACTER VARYING(40) COLLATE "pg_catalog"."default" NOT NULL,
	"soyadi" CHARACTER VARYING(40) COLLATE "pg_catalog"."default" NOT NULL,
	CONSTRAINT "musteriNoPK" PRIMARY KEY ("musteriNo")
);

Örnek Uygulama

  • Örnek Ek Veritabanı

  • Windows işletim sistemi için:

  • Execution time: 10.274 ms

  • Execution time: 0.086 ms

Kalıtım

  • Windows işletim sistemi için:

  • Temel tablo ile çocuk tablo arasında bağıntı kurulumu. "CASCADE" kullanımının en uygun olduğu yer

  • Temel tablo ile çocuk tablo arasında bağıntı kurulumu. "CASCADE" kullanımının en uygun olduğu yer

  • Kalıtım kullanıldığında verilerin eklenmesi

  • Kalıtım kullanıldığında verilerin alınması

  • Sorguların hızlandırılması için temel tabloya eklenen alan

Tekli Bağıntı / Özyineli Birleştirme

  • Yoneticisi olmayan çalışanlar da listelenir.

Görünüm (View)

  • Bir veya daha fazla tablodan seçilen satırlar ve alanlardaki bilgilerin yeni bir tablo gibi ele alınmasını temin eden yapıdır.

  • Seçme (SELECT) işlemi için kısa yol tanımlar.

  • Tablo(lar)dan tüm satırlar seçilebileceği gibi yalnızca belli kriterlere uyan satırlar da seçilebilir.

  • Tablo(lar)daki tüm alanlar görünüme dahil edilebileceği gibi yalnızca belli alanlar da görünüme dahil edilebilir.

  • Genellikle, karmaşık olan seçme (SELECT) işlemlerini basit hale getirmek için kullanılır.

  • Dinamiktir. GÖRÜNÜM (VIEW) ile oluşturulan tabloya gerçekleştirilen her erişimde kendisini oluşturan ifadeler (görünüm – view ifadeleri) yeniden çalıştırılır.

  • Güvenliği sağlamak amacıyla da kullanılır.

    • Örneğin şirket personeli, müşterilerin genel bilgilerini (ad, soyad, adres v.b.) görebilsin ancak kredi kartı bilgilerine erişemesin isteniyorsa yalnızca görmesini istediğimiz bilgileri içeren bir görünüm oluşturulabilir ve ilgili personeli bu görünüme yetkilendiririz.

Aşağıdaki sorgular NorthWind Örnek Veritabanını Kullanmaktadır.

Çoklu Satır Fonksiyonları

Aşağıdaki sorgular NorthWind Örnek Veritabanını Kullanmaktadır.

COUNT

  • COUNT (Satır sayısı)

  • Sorgu sonucunda oluşan sonuç kümesindeki satır sayısını döndürür.

  • Yalnızca bir sütun için uygulanırsa o sütundaki NULL olmayan kayıtların sayısı bulunur.

  • Tablodaki tüm kayıtların sayısı

LIMIT

MAX

  • Seçilen sütundaki en büyük değere ulaşmak için kullanılır.

MIN

  • Seçilen sütundaki en küçük değere ulaşmak için kullanılır.

SUM

  • Seçilen sütundaki değerlerin toplamına ulaşmak için kullanılır.

AVG

  • Seçilen sütundaki değerlerin aritmetik ortalamasını bulmak için kullanılır.

Gruplama

GROUP BY

  • Sorgu sonucunu belirtilen alan(lar)a göre gruplayarak oluşturur.

  • Gruplama işleminde seçilecek alan, gruplama yapılan alan ya da çoklu satır fonksiyonları (COUNT, SUM, AVG vb.) olmalıdır.

  • Aşağıdaki sorgu, ü̈rünleri tedarikçilerine (SupplierID) göre gruplar ve her tedarikçinin sağladığı ürünlerin sayısını (COUNT) hesaplayarak tedarikçi bilgisi ile birlikte döndürür.

  • Aşağıdaki sorgu, siparişleri müşteri firma adına (CompanyName) göre gruplar ve her müşterinin satın aldığı ürün sayısını (COUNT) ve bu ürünlerin toplam (SUM) birim fiyatını hesaplar.

HAVING

  • Gruplandırılmış veriler üzerinde filtreleme yapmak için kullanılır.

  • Gruplama işleminden sonra koşul yazılabilmesi için WHERE yerine HAVING ifadesinin kullanılması gereklidir.

  • HAVING ile yazılan koşullar içerisinde çoklu satır fonksiyonları veya gruplama yapılan alan kullanılabilir.

  • Çoklu satır fonksiyonları ile WHERE kullanılmaz.

  • Aşağıdaki iki sorgu yanlıştır.

Last updated