Artık SQL’in tüm faydalarını biliyor ve deneyimli bir veri analisti, veri mühendisi ya da veri bilimcisiniz. Farklı SQL lehçelerini biliyor, SQL verisi içe aktarmada uzmansınız ve temel SQL sorgularını akıcı şekilde yazabiliyorsunuz. Peki becerilerinizi bir üst seviyeye taşımak ister misiniz? İşte yol haritası.
Orta düzey SQL kavramları
SQL alt dillerini bilin
SQL’de dört temel alt dil vardır—farklı görevleri ifade ederler ancak SQL dilinin parçasıdırlar:
1. DDL (Data Definition Language)
Bu ifadeler tabloları ve veritabanlarını oluşturmak, alan veya tablo özelliklerini tanımlamak için kullanılır. Bu kategorideki komutlara CREATE, ALTER ve DROP örnek verilebilir.
2. DML (Data Manipulation Language)
Bu kategoriye giren ifadeler, verileri güncellemek, tablolara veri eklemek veya tablolardan veri kaldırmak için kullanılır. Bu kategorideki komutlara UPDATE, DELETE ve INSERT dahildir.
3. DCL (Data Control Language)
Bu SQL ifadeleri, veriye kimin erişeceğini kontrol etmek için kullanılır. Bu kategorideki komutlar GRANT ve REVOKE’tur.
4. TCL (Transaction Control Language)
Bu dil, veriyi onaylamak ve geri almak için kullanılır. COMMIT ve ROLLBACK bu kategoriye girer.
5. DQL (Data Query Language)
Bu, SQL sunucusundan veri almak içindir. SELECT ifadesi bu kategoriye girer.
Bunlar göz korkutucu görünebilir, ama endişelenmeyin! SQL öğrenmesi oldukça yalın ve anlaşılır bir dildir; özellikle de SQL ile veri görselleştirmeleri yapamayacağınız için odağı tablolar oluşturmak, veriyi düzenleyip temizlemek ve doğru soruları sormayı öğrenmektir.
Union ve join’ler
Çoğu zaman ihtiyaç duyduğunuz veriler tek bir dev tabloda değil, birden fazla tabloya dağılmış olur. SQL kullanarak bu tabloları birleştirip ihtiyacınız olan tüm veriyi tek bir yerde toplayabilirsiniz. UNION ve JOIN tablolarla ilgili olduğundan, FROM ifadesinde yer alırlar.
UNION, temelde sütunları özdeş olan iki tabloyu üst üste yığar. Bu, ay, çeyrek ya da yıla göre farklı tablolara bölünmüş satış işlem verileri için kullanışlıdır.
Yaygın olarak kullanılan birkaç JOIN türü vardır—Inner, Outer, Left ve Exception. Basitçe söylemek gerekirse, bunlar birleştirilen tablolardan farklı satır kombinasyonları döndürür.
Ek kaynaklar:
Orta düzey SQL sözdizimi
Şimdiye kadar SQL sözdiziminin temellerini, SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY ve LIMIT işlevlerini biliyorsunuz. Veritabanı Tasarımı konusunda yetkinsiniz ve ayrıca SQL yürütme sırasını—sorguların yazılışlarının işleniş biçiminden farklı olduğunu—anlıyorsunuz.
Şimdi daha gelişmiş sözdizimini öğrenme zamanı.
Toplamalar: SELECT, GROUP BY ve HAVING
Excel’e benzer şekilde, SQL ile verinizi toplam, ortalama, maksimum, minimum ve adet şeklinde özetleyebilirsiniz. Toplamalar, verinizi ilk keşfederken, analiz ederken ya da sunarken faydalıdır. Bunları SELECT ifadesinde basit bir toplama döndürmek için kullanabilir veya verinizden bir Excel “özet tablosu” oluşturmak için GROUP BY ifadesini kullanabilirsiniz.
SELECT ifadesinde toplama kullanmak yalnızca basit bir hesaplama döndürür; örneğin SUM(column_name) kullanıyorsanız, sorgunuz o sütundaki tüm değerlerin toplamını temsil eden tek bir değer döndürecektir.
Ayrıca toplamaları kategorik verilerle birlikte de kullanabilirsiniz. Örneğin, ülke genelindeki meyve satış verilerini içeren bir tablonuz varsa, tüm satışların toplamını ürün türüne göre ya da ortalama fiyatı eyalete göre gruplayabilirsiniz. Bunun için WHERE ifadesinden sonra gelen bir GROUP BY ifadesi gerekir. Toplamaların “hangi kategoriye göre” gruplanacağını belirtmeniz ve bu sütunları SELECT ifadenize de dahil etmeniz gerekir.
Veriniz düzgün şekilde gruplanıp bir toplama bir kategorik değişkenle eşleştirildikten sonra, bu toplamlar üzerinde GROUP BY’dan sonra gelen HAVING ifadesiyle filtreleme yapabilirsiniz. Bu, sorgunuzu daha da daraltmak istediğinizde işe yarar; örneğin, ortalama satış toplamı 100.000 $’ın üzerinde olan meyve mağazalarını seçmek isterseniz.
Ek kaynaklar:
- SQL | String Functions | GeeksforGeeks
- SQL Aggregate Functions | Mode
- SQL GROUP BY | W3 Schools
- SQL HAVING | TutorialsPoint
CASE ifadeleri
SQL CASE ifadesi, Excel’deki IF() işlevine benzer—bir sütundaki veri belirlenen bir ölçütle eşleşiyorsa, “şunu” döndürür. Bu, nicel verileri “Yüksek”, “Orta” veya “Düşük” gibi kategorik sınıflara yeniden ayırırken kullanışlıdır. CASE ifadeleri SELECT ifadesinde yer alır.
Ayrıca bakınız:
Alt sorgular
Alt sorgular çeşitli şekillerde kullanılabilir, ancak genellikle FROM veya WHERE ifadesinde bulunurlar. Verinizden küçük, geçici bir tablo oluşturur ve bunu farklı bir şekilde sorgulamak için yeni bir tablo gibi kullanabilirsiniz.
Ayrıca bakınız:
Tarihler ve saatler
Birçok veri dilinde olduğu gibi, tarihler ve saatlerle çalışmak zor olabilir. Bazen tarihler birer “metin” ya da bilgi parçası gibi davranır. Bazen de gerçek tarih olarak ele alınabilir ve SQL sözdizimiyle ay veya yıl gibi birimlere ayrılabilir. Bunu yapmanın pek çok yolu olduğundan, bu işlevler daha gelişmiş SQL sözdizimi kabul edilir.
Ayrıca bakınız:
SQL düşüncenizi geliştirin
Takip edilecek SQL yönergeleri
Gerçek dünyada çalışırken, iş soruları muhtemelen tertemiz şekilde SQL sorgularına dönüşmeyecektir. Bu nedenle, tek satır kod yazmadan önce ihtiyacı dikkatle değerlendirmeniz gerekir. SQL pratiği yaparken izlenebilecek bazı iyi yönergeler şunlardır.
İş sorununuzu önce bir yorum olarak yeniden yazın
Sorgunuzu önce kod yorumu ile “beyin fırtınası” yaparak yazın—yanıtlamaya çalıştığınız soru nedir? Hangi parçalara ve unsurlara odaklanmanız gerekir? Bu, SQL sorgunuza yön verecektir.
İki tür yorumlama vardır: satır içi ve çok satırlı.
--Satır içi, sadece iki kısa çizgidir ve kodun tek bir satırında yer alır—kısa, hızlı notlar için uygundur
/*Çok satırlı yorumlama buna benzer.
Bir sorgunun amacı, yazarı vb. açıklayan başlıklar oluşturmak için iyidir*/
Sorgunuzu taslak olarak çıkarın
Yazmaya başlamadan önce, sorgunuz için hangi parçalara ihtiyaç duyacağınızı belirlemelisiniz. Her zaman bir SELECT ve FROM ifadesine ihtiyacınız olacaktır—ancak başka neler gerekebilir? Veriyi WHERE ifadesiyle filtrelemeniz gerekiyor mu? Toplama işlevleri kullanmanız gerekecek mi?
Amacınıza ulaşmanın farklı yollarını anlayın
Mümkün olduğunda, aynı işi yapmanın birden fazla yoluna sahip olmaya çalışın. Böylece kendinizi kalite kontrolünden geçirip aynı sonuçları elde edip edemediğinizi doğrulayabilirsiniz. Örneğin, bir sütundaki en yüksek değeri ya SELECT ifadesinde MAX() işlevini kullanarak ya da veriyi ORDER BY ile sıralayıp LIMIT ile yalnızca bir satır döndürülecek şekilde kısıtlayarak bulabilirsiniz.
Sorgunuzu test edin
Sorgunuzu satır satır inşa edin ve çalıştığından emin olmak için sık sık çalıştırın. Parçaları tek tek eklemek, çalışmadığı durumda kodunuzu satır satır geriye dönüp inceleme ihtiyacını da azaltır.
Tablonuzu profilleyin
Sorgulara başlayabilmek için önce içindeki veri öğelerini anlamalısınız. Tüm veritabanını görüntüleyerek başlayın; ardından, birkaç sütunu aynı anda inceleyin. Tabloda hangi bilgilerin yer aldığına dair fikir edinmek için hem kategorik hem nicel değer aralıklarını bulun.
Varsayımlarınızın bir listesini tutun
Herhangi bir veri kodu yazarken, kısıtlarınızı ve bağımlılıklarınızı kolayca takip etmek için her zaman bir varsayımlar listesi oluşturmalısınız.
Bir veri sözlüğü tutun
Kullandığınız veri öğeleri için, analizde kullanılan farklı tabloların ve alanların açıklamalarını içeren merkezi bir depo derleyin. Buna her sütundaki farklı veri türleri (karakter, tamsayı, para, tarih vb.) ve sütunun kendisinin kısa bir açıklaması dahil olabilir.
Veri kalite kontrolleri için her zaman zaman ayırın
Analiz, sorgunuzu yazmayı bitirdiğinizde sona ermez. Sonuçlarınızı anlamanız ve analizinizin doğru olduğundan emin olmak için kalite kontrolleri yapmanız gerekir. Aynı sonuca farklı yollarla ulaşmayı deneyin ve farklı bir şey elde edip etmediğinize bakın—bu, satır içi yorumların işe yaradığı bir başka andır!
Bir kum havuzunda pratik yapın
Herhangi bir programlama dilini öğrenmenin en iyi yollarından biri “kum havuzu” bulup içinde denemeler yapmaktır. Kodunuzu test edebilir, çalışıp çalışmadığını görebilir, değiştirebilir, tekrar tekrar çalıştırabilir ve böylece kodlama ilkeleri ile sözdizimine alışabilirsiniz. Başlarken biraz daha rehberliğe ihtiyaç duyabilirsiniz—işinizi kontrol etmek için net talimatlar ve çözüm kodu olan bir proje bulmayı deneyin.
İşte birkaç iyi pratik kaynağı:
Şimdilik bu kadar. Umarız faydalı olmuştur—pratik yapmaya ve öğrenmeye devam edin!
