Ünite 4 — Alt Sorgular ve İleri Sorgulama
12 çoktan seçmeli soru — süre sınırı yok.
Alt Sorgu Temelleri
1. = operatörüyle kullanılan bir alt sorgu ne döndürmelidir?
IN / EXISTS
2. Alt sorgunun döndürdüğü listede bir NULL varsa, NOT IN ne yapar?
IN / EXISTS
3. EXISTS neyle ilgilenir?
FROM'da Alt Sorgu ve Correlated
4. FROM içinde kullanılan bir alt sorgu (türetilmiş tablo) için ne zorunludur?
FROM'da Alt Sorgu ve Correlated
5. İlişkili (correlated) bir alt sorgu, bağımsız bir alt sorgudan nasıl farklıdır?
Pencere Fonksiyonları I
6. İki satır aynı değere sahipse, RANK() ile DENSE_RANK() arasındaki fark nedir?
Pencere Fonksiyonları I
7. PARTITION BY, OVER() içinde ne işe yarar?
Pencere Fonksiyonları I
8. Bir pencere fonksiyonunun sonucuna göre satırları filtrelemek istediğinde ne yapman gerekir?
Pencere Fonksiyonları II
9. LAG(order_date) OVER (ORDER BY order_date) ifadesi bir grubun ilk satırında ne döndürür?
Pencere Fonksiyonları II
10. SUM(quantity) OVER (ORDER BY item_id) ifadesi her satırda ne hesaplar?
Alt Sorgu Temelleri
11. 'Caner Şahin' adlı müşterinin siparişlerini getiren doğru sorgu hangisidir?
IN / EXISTS
12. NULL tuzağı söz konusu olduğunda NOT IN yerine ne tercih edilir?
1. = operatörüyle kullanılan bir alt sorgu ne döndürmelidir?
- AHerhangi sayıda satır
- BTam olarak tek bir satır ve tek bir sütun (skaler değer)
- CEn az iki satır
- DSadece metin değerleri
2. Alt sorgunun döndürdüğü listede bir NULL varsa, NOT IN ne yapar?
- ANULL'ı yok sayar, normal çalışır
- BHiçbir satır döndürmez — klasik bir SQL tuzağı
- CHata verir
- DNULL'ı 0 olarak değerlendirir
3. EXISTS neyle ilgilenir?
- AAlt sorgunun döndürdüğü değerlerin içeriğiyle
- BSadece alt sorgunun en az bir satır döndürüp döndürmediğiyle
- CAlt sorgunun kaç sütun döndürdüğüyle
- DAlt sorgunun ne kadar sürede çalıştığıyla
4. FROM içinde kullanılan bir alt sorgu (türetilmiş tablo) için ne zorunludur?
- AHiçbir şey
- BMutlaka bir takma ad verilmesi
- CSadece tek bir sütun döndürmesi
- DWHERE koşulu içermemesi
5. İlişkili (correlated) bir alt sorgu, bağımsız bir alt sorgudan nasıl farklıdır?
- AFarkı yoktur
- BDıştaki sorgunun o anki satırına bir sütun referansıyla bağlıdır
- CSadece INSERT ile kullanılabilir
- DHer zaman FROM içinde yazılır
6. İki satır aynı değere sahipse, RANK() ile DENSE_RANK() arasındaki fark nedir?
- AFark yoktur
- BRANK eşitlikten sonraki sırayı atlar (1,2,2,4); DENSE_RANK atlamaz (1,2,2,3)
- CDENSE_RANK sırayı atlar, RANK atlamaz
- DRANK sadece metinlerde çalışır
7. PARTITION BY, OVER() içinde ne işe yarar?
- ASatırları filtreler (WHERE gibi)
- BSatırları belirtilen sütuna göre gruplara ayırır; her grup için hesaplama sıfırdan başlar
- CSonucu genel olarak sıralar
- DBir tabloyu ikiye böler
8. Bir pencere fonksiyonunun sonucuna göre satırları filtrelemek istediğinde ne yapman gerekir?
- ADoğrudan WHERE içinde kullanabilirsin
- BBir alt sorguda hesaplayıp dış sorguda WHERE ile filtrelemen gerekir
- CBu mümkün değildir
- DHAVING kullanman yeterlidir, WHERE gerekmez
9. LAG(order_date) OVER (ORDER BY order_date) ifadesi bir grubun ilk satırında ne döndürür?
- A0
- BNULL — çünkü ondan önceki bir satır yoktur
- CKendi order_date değerini
- DHata verir
10. SUM(quantity) OVER (ORDER BY item_id) ifadesi her satırda ne hesaplar?
- ASadece o satırın quantity'sini
- BTüm tablodaki toplam quantity'yi (her satırda aynı)
- CO satıra kadar (kendisi dahil) birikimli toplamı (yürüyen toplam)
- DBir sonraki satırın quantity'sini
11. 'Caner Şahin' adlı müşterinin siparişlerini getiren doğru sorgu hangisidir?
- ASELECT * FROM orders WHERE customer_id = (SELECT customer_id FROM customers WHERE full_name = 'Caner Şahin');
- BSELECT * FROM orders WHERE customer_id = 'Caner Şahin';
- CSELECT * FROM orders WHERE full_name = 'Caner Şahin';
- DSELECT * FROM customers WHERE customer_id = (SELECT * FROM orders);
12. NULL tuzağı söz konusu olduğunda NOT IN yerine ne tercih edilir?
- ANOT EXISTS — NULL'lardan etkilenmez
- BUNION
- CGROUP BY
- DHiçbiri, tuzaktan kaçmanın yolu yoktur