Veri yönetimi, analitik panellerden işlem sistemlerine kadar her şeyi destekleyen SQL, güçlü bir araç olarak karşımıza çıkar. SQL'in temel özelliklerini, özellikle join'leri, fonksiyonları, alt sorguları ve CTE'leri (Ortak Tablo İfadeleri).mastering, karmaşık veri kümelerinden anlamlı kalıpları çıkarma yeteneğinizi Dramatik şekilde artırabilir. Satış eğilimlerini analiz ediyor veya teknik görüşmeler için hazırlanıyorsanız, bu kavramlar etkili sorgulamanın temelini oluşturur.
SQL Join'lerinin Çoklu Tablo Sorgularını Kilidi Açması
Temelde, bir SQL join, satırları bir veya daha fazla tablodan birleştirmek için sütunları eşleştirir, genellikle birincil ve yabancı anahtarları kullanır. Müşteri satın almalarını takip ettiğinizi hayal edin: bir tablo müşteri ayrıntılarını taşırken diğeri işlemleri kaydeder. Join'ler olmadan, ayrı sorgulara ve manuel uzlaştırmaya ihtiyacınız olurdu. Join'ler bu verileri tek bir işlemde birleştirerek bu sorunu çözer.
Dört temel join türü farklı kullanım durumlarına hizmet eder:
- LEFT JOIN: Sol tablodaki tüm satırları ve sağ tablodaki eşleşen satırları döndürür. Bu, ilişkili veriler eksik olsa bile ana veri kümenizdeki tüm kayıtları korumak için kullanılır. Örneğin, tüm müşterileri siparişleriyle birlikte listelemek - sipariş vermeyenler dahil.
- INNER JOIN: Her iki tablodan yalnızca eşleşen satırları döndürür. Bu, tam eşleşmelerde idealdir, yalnızca tam eşleşen verilerle ilgilenirsiniz. Sipariş veren müşterileri sorgulamak için iç join kullanabilirsiniz.
- RIGHT JOIN: Sağ tablodaki tüm satırları ve sol tablodaki eşleşen satırları döndürür. Sol ve sağ tabloları değiştirerek left join'e eşdeğerdir, ancak sağ veri kümesine odaklanıyorsanız faydalıdır.
- FULL JOIN: Her iki tabloda da bir eşleşme varsa tüm satırları döndürür. Bu, boşlukları tanımlamak için değerli bir araçtır, örneğin tüm müşterileri ve tüm siparişleri - bağlantılı olsunlar veya olmasınlar.
-- Örnek: Tüm müşterileri dahil etmek için sol join
SELECT c.musteri_adi, o.siparis_tarihi
FROM musteriler c
LEFT JOIN siparisler o ON c.musteri_id = o.musteri_id;Pencere Fonksiyonları: Toplama Yapmadan Satırlar boyunca Hesaplamalar
Geleneksel toplama fonksiyonları gibi COUNT() veya SUM(), satırları tek bir sonuca indirger. Pencere fonksiyonları ise orijinal satırları korurken belirli bir bölüme üzerinden hesaplamalar yapar. Bu, sıralama, artan toplamlar ve karşılaştırmalı analiz için vazgeçilmez kılar.
Ortak pencere fonksiyonları arasında:
ROW_NUMBER(): Her satıra bir partition içinde benzersiz bir sıralı numara atar.RANK(): Eşitlikler için boşluklarla sıralar (örneğin, iki çalışanın ikinci sırayı paylaşması).DENSE_RANK(): Eşitlikler için boşluklar olmadan sıralar (örneğin, iki çalışanın ikinci sırayı paylaşması, sonraki çalışan dördüncü sıradadır).SUM() OVER(): Birikimli toplamları hesaplar.
-- Örnek: Departman başına ortalama maaşı hesaplamak, tüm çalışanları koruyarak
SELECT
calisan_adi,
departman,
maas,
AVG(maas) OVER (PARTITION BY departman) AS departman_ort_maas
FROM calisanlar;Her Analistin Bilmesi Gereken Temel SQL Fonksiyonları
İçeren fonksiyonlar, tekrar eden görevleri işleyerek veri işlemini basitleştirir. İşte başlangıç için en kritik olanlar:
- COUNT(): Bir sütündaki veya tablodaki null olmayan değerlerin sayısını sayar. Tüm satırları saymak için
COUNT(*)veya belirli bir sütundaki benzersiz değerleri saymak içinCOUNT(sutun_adi)kullanın. - SUM(): Sayısal değerleri toplar, genellikle gelir veya stok gibi toplamaları hesaplamak için kullanılır.
- AVG(): Aritmetik ortalamayı hesaplar, performans ölçütleri veya finansal ortalamalar için yararlıdır.
- UPPER()/LOWER(): Metin durumunu raporlar veya aramalar için standardize eder.
- NOW()/CURRENT_DATE(): Geçerli zaman damgasını veya tarihi alır, yakın kayıtları filtrelemek veya etkinlikleri günlüğünü tutmak için önemlidir.
-- Örnek: Adları standardize etmek ve aktif kullanıcıları saymak
SELECT
UPPER(kullanici_adi) AS formatli_ad,
COUNT(*) AS aktif_kullanicilar
FROM kullanicilar
WHERE son_giris > CURRENT_DATE - INTERVAL '30 gün';Alt Sorgular: Kesin Sonuçlar için Gömülü Sorgular
Bir alt sorgu, başka bir SQL ifadesi içinde gömülü bir sorgudur ve önce çalıştırılır ve sonuçlarını dış sorguya besler. Alt sorgular, hesaplanan değerlere dayalı olarak verileri dinamik olarak filtreleme için excelente bir şekilde kullanılır. Örneğin, şirket ortalamasının üzerinde kazanan çalışanları tanımlamak, bireysel maaşları türetilmiş bir ortalamayla karşılaştırmayı gerektirir.
Alt sorgular üç temel türe sahiptir:
- Skalar alt sorgular: Tek bir değer döndürür,
WHEREkoşullarında veya ifadelerde kullanılır. - Çok satırlı alt sorgular: Birden fazla değer döndürür, genellikle
INveyaNOT INgibi operatörlerle kullanılır. - Bağlı alt sorgular: Dış sorgudan sütunlara atıfta bulunur, her dış satır için bir kez çalıştırılır. Bu tür sorgular güçlüdür ancak aşırı kullanım performansı etkileyebilir.
-- Örnek: Kategori ortalamasının üzerindeki ürünleri bulmak
SELECT urun_adi, fiyat
FROM urunler
WHERE fiyat > (
SELECT AVG(fiyat)
FROM urunler
WHERE kategori_id = u.kategori_id
);Ortak Tablo İfadeleri (CTE'ler): Karmaşık Sorguları Basitleştirme
Bir CTE, WITH clause kullanılarak oluşturulan geçici bir ad verilen sonuç kümesidir. CTE'ler, özellikle çok adımlı analizlerde, okunabilirliği ve modülariteyi geliştirir. Aynı sorgu içinde yeniden kullanılabilirler ve önceki CTE'lere referans verebilirler, mantıksal iş akışlarını ermögelerine olanak tanır.
Pratik kullanım durumları arasında:
- Karmaşık join'leri anlaşılabilir adımlara bölme.
- Ara hesaplamaları yeniden kullanma (örneğin, aylık satışları topladıktan sonra sıralama).
- Sorguları kendi belgelendirme yoluyla işbirliğini artırma.
-- Örnek: CTE'ler ile aylık satış analizi
WITH aylik_gelir AS (
SELECT
DATE_TRUNC('ay', siparis_tarihi) AS ay,
SUM(tutar) AS toplam_satis
FROM siparisler
GROUP BY ay
),
sirali_aylar AS (
SELECT
ay,
toplam_satis,
RANK() OVER (ORDER BY toplam_satis DESC) AS satis_sirasi
FROM aylik_gelir
)
SELECT * FROM sirali_aylar;SQL Becerileri Yol Haritası Oluşturma
Bu kavramlar, veri analizi, mühendisliği ve veritabanı yönetiminde temel SQL ustalığının temelini oluşturur. SQL sorgularınızı daha etkili ve verimli hale getirmek, analiz ve karar alma süreçlerinizi hızlandırmanıza yardımcı olacaktır.
Yapay zeka özeti
SQL sorgularınızı daha etkili ve verimli hale getirmek, analiz ve karar alma süreçlerinizi hızlandırmanıza yardımcı olabilir. İşte SQL join'leri, pencere fonksiyonları ve daha fazlası hakkında bilgi edinin.