SQL Öğrenmek: Temel Sorgudan İş Sorusunu Cevaplamaya
Beceri rehberi

SQL Öğrenmek: Temel Sorgudan İş Sorusunu Cevaplamaya

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

SQL ne işe yarar ve nasıl öğrenilir: SELECT, filtreleme, gruplama, JOIN ve pencere fonksiyonlarını gerçekçi bir sipariş verisi örneğiyle adım adım öğrenin.

SQL nedir, iş hayatında ne işe yarar?

SQL (Structured Query Language), ilişkisel veritabanlarındaki verileri sorgulamak, eklemek, güncellemek ve tablo yapılarını tanımlamak için kullanılan standart dildir. Bir sipariş sisteminde, muhasebe yazılımında ya da insan kaynakları uygulamasında tutulan kayıtların büyük kısmı ilişkisel veritabanlarında durur ve bu verilere doğrudan ulaşmanın ortak yolu SQL'dir.

SQL yalnızca yazılımcıların dili değildir. Veri analisti satış eğilimini, finans uzmanı hesap hareketlerini, ürün yöneticisi kullanıcı davranışını, insan kaynakları analisti devir oranlarını SQL ile çeker. Hazır raporda olmayan bir soruyu cevaplamak için başka birinin sorgu yazmasını beklemek yerine veriye kendiniz ulaşırsınız. Bu yüzden SQL, veriyle çalışan hemen her rolde temel beceri sayılır.

SQL'in temel yapı taşları

SQL'in söz dizimi İngilizce cümlelere yakındır ve az sayıda temel komutla geniş bir iş alanını kapsar: • SELECT ve FROM: Hangi tablodan hangi sütunların getirileceği. • WHERE: Satırları koşula göre filtreleme, örneğin yalnızca tamamlanmış siparişler. • ORDER BY: Sonucu sıralama. • GROUP BY ve toplama fonksiyonları: SUM, COUNT, AVG ile kategori, bölge ya da ay bazında özet çıkarma. • HAVING: Gruplanmış sonuç üzerinde filtreleme. • JOIN: Müşteri, sipariş ve ürün gibi ayrı tabloları ortak anahtar üzerinden birleştirme. • Alt sorgular ve WITH ifadeleri: Karmaşık bir soruyu okunur parçalara bölme. • Pencere fonksiyonları: Satırları gruplamadan sıra numarası, kümülatif toplam ya da önceki dönemle karşılaştırma hesaplama.

Bunlar veriyi okuma tarafıdır. INSERT, UPDATE, DELETE ile veri değiştirilir; CREATE TABLE gibi komutlarla yapı tanımlanır. Analiz amacıyla öğrenenler çoğunlukla okuma tarafında yoğunlaşır.

Adım adım SQL öğrenme yolu

SQL'i en hızlı öğrenmenin yolu, sözdizimini ezberlemek değil, gerçekçi bir veri seti üzerinde sorular sorup cevaplamaktır. Önerilen sıra: • Ortam kurun: Ücretsiz bir veritabanı (SQLite ya da PostgreSQL) ve örnek bir veri seti, örneğin müşteri, sipariş ve ürün tablolarından oluşan bir mağaza veritabanı. • Tek tablo sorguları: Seçme, filtreleme, sıralama, metin ve tarih koşulları. • Özetleme: GROUP BY ve toplama fonksiyonlarıyla aylık ve kategori bazında özetler. • Birleştirme: INNER ve LEFT JOIN farkını, birden çok tabloyu birleştirmeyi ve yanlış birleştirmenin satırları nasıl çoğalttığını görmek. • Okunur sorgu yazma: WITH ifadeleriyle uzun sorguyu adımlara bölmek. • Analitik sorgular: Pencere fonksiyonlarıyla sıralama, dönem karşılaştırması ve kümülatif toplam. • Uygulama: Kendi işinizden birkaç soruyu baştan sona sorguya dönüştürüp sonucu bir raporda kullanmak.

Her adımda yazdığınız sorgunun sonucunu elle küçük bir örnekle kontrol edin. Bu alışkanlık, SQL'de en pahalı hata olan yanlış ama hatasız çalışan sorguyu yakalamanın yoludur.

İş örneği: bir iş sorusunu sorguya çevirmek

Satış müdürü soruyor: "Geçen ay hangi ürün kategorisi en çok ciro getirdi ve bu kategoride kaç farklı müşteri alışveriş yaptı?" Veritabanında siparişler, sipariş kalemleri, ürünler ve müşteriler ayrı tablolarda duruyor.

Soruyu parçalara ayırırsınız. Önce geçen aya ait ve iptal edilmemiş siparişleri filtrelersiniz. Sonra sipariş kalemlerini ürün tablosuyla birleştirip her kalemin kategorisini bulursunuz. Ardından kategoriye göre gruplayıp tutarları toplarsınız ve farklı müşterileri COUNT(DISTINCT customer_id) ile sayarsınız. Son olarak ciroya göre büyükten küçüğe sıralarsınız.

Sorgunun çekirdeği şuna benzer: SELECT p.category, SUM(i.amount) AS revenue, COUNT(DISTINCT o.customer_id) AS customers FROM orders o JOIN order_items i ON i.order_id = o.id JOIN products p ON p.id = i.product_id WHERE o.status <> 'cancelled' GROUP BY p.category ORDER BY revenue DESC. Tablo ve sütun adları örnek olarak İngilizce verilmiştir. Tarih koşulu kullandığınız veritabanının tarih fonksiyonlarıyla eklenir. Sonucu yöneticiye götürmeden önce toplam ciroyu muhasebe raporuyla karşılaştırmak, iptal ve iade mantığının doğru kurulduğunu gösterir.

Hangi veritabanıyla başlamalı?

Temel SQL komutları standarttır ve PostgreSQL, MySQL, Microsoft SQL Server, Oracle ve SQLite gibi yaygın sistemlerin hepsinde benzer çalışır. Farklar çoğunlukla tarih fonksiyonları, metin işlemleri, sonuç sayısını sınırlama sözdizimi ve bazı ileri özelliklerdedir. Bir sistemde öğrendiğiniz mantık diğerine büyük ölçüde taşınır.

Pratik öneri şudur: Çalıştığınız ya da hedeflediğiniz kurumda hangi veritabanı kullanılıyorsa onunla başlayın. Bilmiyorsanız PostgreSQL hem ücretsiz hem de standarda yakın olduğu için iyi bir başlangıçtır. Bulut veri ambarlarında da SQL kullanıldığı için bu beceri analiz platformlarına geçişte de işe yarar.

SQL yazarken sık yapılan hatalar

Hata mesajı veren sorgular kolay düzeltilir; asıl tehlike çalışan ama yanlış sonuç üreten sorgulardır: • Birleştirmede satır çoğalması: Bire çok ilişkili tabloları birleştirip ardından toplam almak, tutarları katlayabilir. • NULL değerleri unutmak: NULL ile yapılan karşılaştırmalar beklenen sonucu vermez; IS NULL ve COALESCE kullanımını öğrenmek gerekir. • WHERE ile HAVING'i karıştırmak: Gruplamadan önceki filtre WHERE, sonraki filtre HAVING ile yazılır. • INNER JOIN ile kayıt kaybetmek: Eşleşmesi olmayan satırlar sessizce düşer; hiç sipariş vermemiş müşterileri görmek için LEFT JOIN gerekir. • SELECT yıldız alışkanlığı: Gereksiz sütunlar sorguyu yavaşlatır ve sonucu okumayı zorlaştırır. • Tarih aralığını yanlış kurmak: Ayın son gününü ve saat bilgisini hesaba katmamak, kayıt kaçırır.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

SQL ile Programlama Eğitimi; veritabanı oluşturma, tablolarla çalışma, veri işleme dili, sorgular, hesaplamalar, JOIN kullanımı, toplama ve gruplama ile görünümler modülleriyle bu sayfadaki öğrenme yolunun temel ve orta adımlarını kapsar.

SQL'i veritabanı tasarımı, indeksleme ve güvenlikle birlikte ele almak isteyenler için Veritabanı Yönetim Sistemleri ve Uygulamaları programı ilişkisel veritabanları ve SQL, veri modelleme ve tasarım ile veritabanı yönetimi ve optimizasyon modüllerini içerir.

İlgili Mindset programı

SQL ile Programlama Eğitimi

Sık sorulanlar

Sık sorulan sorular

SQL öğrenmek için programlama bilmek gerekir mi?

Gerekmez. SQL, ne istediğinizi tarif ettiğiniz bildirimsel bir dildir; döngü ve değişken mantığı bilmeden de sorgu yazabilirsiniz. Elektronik tablolarda filtreleme, özet tablo ve düşeyara gibi işlemlere alışkın olanlar SQL'in temel mantığını genellikle kolay kavrar.

SQL mi önce öğrenilmeli, Python mu?

Veri analizi hedefliyorsanız çoğu durumda önce SQL önerilir, çünkü verinin büyük kısmı veritabanlarında durur ve analizin ilk adımı onu doğru çekmektir. Python; istatistik, otomasyon, makine öğrenmesi ve veritabanı dışındaki kaynaklarla çalışırken öne çıkar. İki dil birbirinin alternatifi değil, tamamlayıcısıdır.

Temel SQL'den ileri seviyeye geçtiğimi nasıl anlarım?

Bir iş sorusunu duyduğunuzda hangi tabloların gerektiğini, nasıl birleştirileceğini ve sonucun hangi düzeyde gruplanacağını kafanızda kurabiliyorsanız temel aşamayı geçmişsiniz demektir. İleri seviyenin işaretleri ise pencere fonksiyonlarını rahat kullanmak, yavaş çalışan bir sorgunun nedenini sorgu planından okuyabilmek ve başkalarının da bakımını yapabileceği okunur sorgular yazmaktır.

SQL ile Excel arasındaki fark nedir?

Excel veriyi aynı dosyada hem tutar hem işler; SQL ise veritabanındaki veriyi yerinden taşımadan sorgular. Satır sayısı büyüdüğünde, birden çok tabloyu ilişkilendirmek gerektiğinde ve aynı raporun her gün tekrar üretilmesi gerektiğinde SQL daha güvenilir ve tekrarlanabilir sonuç verir. Küçük ve tek seferlik analizlerde Excel hâlâ pratiktir.

SQL bilgimi nasıl gösterebilirim?

Gerçekçi bir veri seti üzerinde çözdüğünüz iş sorularını, sorgularıyla ve vardığınız sonuçla birlikte bir portföyde paylaşabilirsiniz. İş görüşmelerinde de çoğunlukla canlı sorgu yazdırılır; JOIN türleri, gruplama, NULL davranışı ve pencere fonksiyonları en sık sorulan konulardır.