SQL Mülakatına Hazırlık: Sık Sorulan Sorular ve Yanıt Mantığı
Beceri rehberi

SQL Mülakatına Hazırlık: Sık Sorulan Sorular ve Yanıt Mantığı

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Mülakatlarda sorulan SQL konularını, temel kavram ve sorgu yazma sorularını, kısa yanıt mantığıyla ve hazırlık planı ile birlikte inceleyin.

SQL mülakatında ne ölçülür?

SQL mülakatlarında değerlendirilen şeyler birbirinden ayrılır: kavramsal bilgi, sorgu yazma becerisi ve veriye yaklaşım biçimi. Kavramsal sorular, bir şeyin ne olduğunu ve neden var olduğunu sorar: birincil anahtar nedir, INNER JOIN ile LEFT JOIN nasıl ayrılır. Sorgu yazma soruları, bir iş sorusunu SQL'e çevirmenizi ister: her müşterinin son siparişini getirin, tekrar eden kayıtları bulun. Yaklaşım soruları ise veri kalitesi, performans ve belirsiz isteklerle nasıl başa çıktığınızı görür.

Rolüne göre vurgu değişir. Veri analisti adayından karmaşık sorgu ve özetleme, yazılım geliştirici adayından şema tasarımı ve performans, veri mühendisi adayından büyük veri yükleri ve dönüşüm mantığı beklenir. Pozisyon ilanındaki araçları (hangi veritabanı sistemi) önceden öğrenip o sistemin sözdizimini çalışmak faydalıdır.

Mülakatçı çoğu zaman yalnızca doğru sorguya değil, düşünme sürecinize bakar. Sorunu yüksek sesle ayrıştırmak, varsayımları belirtmek ve sonucu kontrol etmek kusursuz sözdiziminden daha çok puan getirir.

Temel kavram soruları ve yanıt mantığı

Sık sorulan temel sorular ve kısa yanıt mantıkları: • WHERE ile HAVING farkı: WHERE satırları gruplamadan önce, HAVING grupları gruplamadan sonra filtreler. • DELETE, TRUNCATE ve DROP farkı: DELETE koşula göre satır siler ve geri alınabilir, TRUNCATE tüm satırları hızla boşaltır, DROP tablonun kendisini kaldırır. • Birincil anahtar ile benzersiz anahtar: birincil anahtar boş olamaz ve tabloda tek bir tane bulunur; benzersiz kısıt birden fazla olabilir. • Yabancı anahtar ne işe yarar: tablolar arası ilişkiyi ve bütünlüğü korur. • UNION ile UNION ALL: UNION tekrar eden satırları eler, UNION ALL tutar ve daha hızlıdır. • NULL nedir, NULL ile karşılaştırma nasıl yapılır: NULL bilinmeyen değerdir, eşittir ile karşılaştırılamaz, IS NULL kullanılır. • DISTINCT ne yapar: seçilen sütunlardaki tekrarları eler. • İndeks nedir: aramayı hızlandıran, yazmayı yavaşlatan yardımcı veri yapısıdır. • Normalizasyon nedir: tekrarı azaltmak için veriyi ilişkili tablolara bölmektir. • Transaction ve ACID: işlemin bölünmez bir bütün olarak onaylanması ya da geri alınması; ACID bunun güvence ilkeleridir.

Yanıtı tanımla, örnek ver, ne zaman kullanılacağını söyle biçiminde kurmak etkilidir.

JOIN soruları

Mülakatlarda JOIN neredeyse kesin sorulur. INNER JOIN yalnızca birleştirilen tüm tablolarda eşleşen satırları döndürür. LEFT JOIN soldaki tablonun tüm satırlarını, sağda eşleşme yoksa boş değerlerle döndürür. RIGHT JOIN bunun tersidir. FULL OUTER JOIN eşleşsin eşleşmesin tüm satırları verir. CROSS JOIN ise tabloların kartezyen çarpımını üretir.

Sık gelen uygulama sorusu şudur: hiç siparişi olmayan müşterileri bulun. Çözüm, müşterileri siparişlerle LEFT JOIN edip siparişin anahtar sütunu boş olanları seçmektir. Alternatif olarak NOT EXISTS de kullanılabilir. Bir başka klasik soru, çalışanları yöneticileriyle listelemektir; bu bir self join sorusudur ve tabloya farklı takma adlar vermeyi test eder.

JOIN koşulunu yanlış yazarsanız satırların çoğaldığını fark edebilmek önemlidir. Aday, sonuç satır sayısının beklendiği gibi olup olmadığını kontrol etme alışkanlığını gösterebilmelidir. Hangi JOIN türünü neden seçtiğinizi açıklayın.

Sorgu yazma soruları: tipik kalıplar

Sorgu yazma bölümü çoğunlukla birkaç kalıbın üzerine kuruludur. Bunları farklı tablolarla çalışarak alıştırın: • Gruplama ve toplama: kategori bazında toplam satış, ortalama sipariş tutarı, en az belirli sayıda siparişi olan müşteriler. • Tekrar eden kayıtları bulmak: GROUP BY ile HAVING COUNT(*) kalıbı. • Her grupta en yüksek kaydı bulmak: ROW_NUMBER ile PARTITION BY ve dış sorguda filtre. • Ardışık ya da önceki değerle kıyas: LAG ve LEAD ile bir önceki ayın satışı. • Kümülatif toplam ve hareketli ortalama: SUM üzerinde OVER ve sıralama. • Sıralamada belirli sıradaki değeri bulmak: sıralama fonksiyonları ya da alt sorgu. • Eşleşmeyen kayıtları bulmak: LEFT JOIN ve IS NULL ya da NOT EXISTS. • Tarih aralığı filtresi: bitiş sınırını dahil etmeme yaklaşımı. • CASE WHEN ile koşullu hesaplama ve satırı sütuna çevirme.

Bu kalıplar öğrenildiğinde yeni sorular genellikle tanıdık bir kalıbın varyasyonu çıkar. Çözümden önce çıktı sütunlarını ve satırın neyi temsil ettiğini yazarak başlamak, hata oranını belirgin biçimde düşürür.

İleri düzey sorular: performans ve tasarım

Kıdemli rollerde mülakat, sorgunun doğruluğundan öteye gider. Tipik konular: yavaş bir sorgu nasıl incelenir, yürütme planı nasıl okunur, indeks hangi sütunlara konur, neden bazen indeks kullanılmaz. Fonksiyon uygulanan sütunlarda ya da başı joker olan LIKE kalıplarında indeksin devre dışı kaldığını bilmek beklenir.

Bir diğer grup, ilişkisel tasarım soruları: normalizasyonun amacı nedir, ne zaman bilerek denormalize edilir, birçoktan çoğa ilişki nasıl modellenir. Burada kavramsal netlik ve gerçek bir örnekle anlatabilmek değerlidir.

Bunlara ek olarak saklı yordam, görünüm (view), tetikleyici, CTE ve recursive CTE, transaction ve kilitlenme (deadlock), izolasyon seviyeleri gibi konular sorulabilir. Hepsini ayrıntısıyla bilmeniz beklenmez, ama hangi sorunu çözdüklerini ve bedellerini anlatabilmelisiniz.

Veri kalitesi sorusu da yaygındır: hatalı ya da tekrar eden veriyle karşılaştığınızda ne yaparsınız? Yanıt olarak önce tespit, sonra kaynağı anlama, ardından güvenli düzeltme adımlarını sıralamak güçlü bir yaklaşımdır.

Hazırlık planı ve mülakat günü yaklaşımı

Etkili bir hazırlık şu akışı izler: önce temelleri hızlıca gözden geçirin, sonra her kalıbı gerçek bir veri kümesinde kendiniz yazarak çalışın ve ancak ondan sonra zor sorulara geçin. Yalnızca soru listesi ezberlemek işe yaramaz; mülakatçı koşulu biraz değiştirdiğinde ezber kalıp çöker. Her çözümü yazdıktan sonra farklı bir yoldan da çözmeyi deneyin: örneğin aynı sonucu alt sorgu, JOIN ve pencere fonksiyonuyla elde edin.

Mülakat günü için pratik öneriler: soruyu ve çıktı biçimini önce tekrar edin, belirsizlik varsa tabloyu ve sütunları sorun, küçük bir örnek veri üzerinde mantığı doğrulayın, NULL ve tekrar eden satır gibi köşe durumları belirtin. Tahtada ya da çevrimiçi editörde yazarken sorguyu parça parça kurup her parçanın sonucunu düşünerek ilerleyin.

Mindset kataloğunda SQL ile Veri Sorgulama (Temel) eğitimi filtreleme, toplulaştırma, JOIN ve koşullu ifadeler modüllerini; SQL ile Programlama Eğitimi ise sorgular, join kullanımı, toplama ve gruplama ile görüntüleme modüllerini içerir. Bu içerikler, veri analisti ve raporlama rollerine hazırlanan kişiler için çalışma temeli sağlar.

İlgili Mindset programı

SQL ile Programlama Eğitimi

Sık sorulanlar

Sık sorulan sorular

SQL mülakatı için hangi veritabanı sistemini çalışmalıyım?

İlandaki ya da şirketin kullandığı sistemi öğrenin. Belirsizse temel SQL'in büyük kısmı sistemler arasında ortaktır; MySQL, PostgreSQL ya da SQL Server üzerinde çalışmak yeterli bir başlangıçtır. Sınırlama, tarih ve metin fonksiyonları gibi sisteme özgü kısımlara özellikle bakın.

Mülakatta kod editörü yerine kâğıtta ya da tahtada SQL yazmak gerekirse?

Sözdiziminin kusursuz olması beklenmez; mantığın doğru kurulması esastır. Çıktı sütunlarını ve kullanacağınız tabloları önce yazın, sorguyu parça parça ilerletin ve her adımı sesli açıklayın. Küçük sözdizimi hataları genelde hoş görülür, mantık hataları ise düşünce sürecinizin sorgulanmasına yol açar.

Pencere fonksiyonları mülakatta çıkar mı?

Veri analisti ve veri mühendisi rollerinde sıkça çıkar. ROW_NUMBER, RANK, LAG, LEAD ve kümülatif toplam, her grupta ilk kaydı bulma gibi sorularda kullanılır. Bu fonksiyonları gerçek bir tabloda yazarak çalışmak, aday ile diğerlerini ayıran bir hazırlık alanıdır.

Cevabını bilmediğim bir soruyla karşılaşırsam ne yapmalıyım?

Bildiğiniz kısmı açıkça söyleyin ve bilmediğiniz noktayı varsayım olarak belirtin. Yakın bir kavramdan hareketle akıl yürütmek, boş bırakmaktan çok daha güçlü bir izlenim bırakır. Gerekirse dokümantasyondan bakardınız demek de gerçek iş ortamında olağan bir yaklaşımdır.

Sorguyu doğru yazdım ama mülakatçı hâlâ soru soruyor, neden?

Doğru sorgu genellikle başlangıçtır. Mülakatçı sonra performansı, köşe durumlarını ya da alternatif çözümü sorabilir: büyük tabloda ne olur, NULL gelirse ne olur, aynı işi farklı bir yoldan nasıl yaparsınız. Bu sorular zorlama değil, derinliği ölçmek içindir.

SQL Mülakat Soruları ve Hazırlık Yolu