Ay: Nisan 2021

SQL Practice Problems Nasıl Bir Kitap

SQL öğrenirken hepimiz tek oturuşta tek bir öğleden sonra öğrenebildiğimizi görürüz. Gerçekten öğreniriz de ancak sonrasında SQL’i pratiğe geçirme onunla bir şeyler yapma aşamasına gelmek uğraş vermek, Örnek veritabanları ile uğraşmak gerekmektedir. İşte kitabın amacı bize o pratiği kazandırmak ve biraz da neyin ne için olduğunu göstermek. Peki kitap bunu başarabiliyor mu?

Meşhur Northwind veritabanını kullanan kitap anlaması kolay bir veritabanı sunuyor.

İlk sorularda temel SQL Syntaxını öğretmekle başlıyor. İlk 10-12 soruyu atlayabilirsiniz. Ya da hangi tablolar hakkında bir aşinalığınız olabileceği için size faydası olabilir. İlk bölüm inner join ile son buluyor. Kitap hintler (ipuçları) ile bize yol gösterirken, birtakım sorularda birden fazla hint vererek sonuca ulaşmamızı kolaylaştırıyor.

Intermediate problemlerin bazılarındaki çözümleri ve kullandıkları yöntemler bana o kadara da gerek yok gibi gelsede sundukları düşünme yöntemleri gerçekten işe yarar gözüküyor.

Advanced Problemlere geldiğimizde ise Artık Şuradan şu gibi soruların değil daha çok başka birinden bir istek olarak soruların geldiğini görüyoruz. Hatta onların anlaması için daha açık, daha çok bilgi içeren (daha çok joinli) queryler yazıyoruz ki iş yaşamında karşılaşacaklarımız çoğunlukla belirtilen şekildeki mevzular.

Kitapta birtakım bilgilere gelecek olursak:

Random sample almak için rastgele üretilmiş bir değere göre sıralayıp direkt olarak select top percent ile istediğimiz şekilde örnekleme yapabilmekteyiz:

select top 2 percent OrderID 

from orders 

order by NEWID() 

Çok büyük tablolarda sıkıntı olabileceğini söylüyorlar newid ile.

İsnull fonksyionu ile örnek olarak bir sütunumuzdaki null valuelarımızı istediğimiz değer ile değiştirebilmekteyiz. Basit bir imputation işlemi olarak düşünülebilecek bu özellik oldukça kullanılabilir gözüküyor:

Select  isnull(LateOrders.LateOrdersNumof,0) as LateOrders 

Lateordersnumof daki null değerler artık 0

Yine null değerleri sıralamamızda en sona veya en başa toplu bir şekilde atmak için isnull fonksiyonundan yararlanabilmekteyiz. isnull’a en sonda veya duruma göre en başta sıralanacak şekilde bir değer verir isek yerlerini kolay bir şekilde belirtmiş oluruz:

Select CustomerID,CompanyName,Region 

from customers 

order by ISNULL(Region,’Z’); 

Eomonth isminde belirtilen tarihteki ayın son gününü getiren bir fonksiyon varmış ki gerçekten çok faydalı. Ben son gün olup olmadığını bir gün ekleyip ay değerleri farklı mı diye kontrol ederken böyle bir kestirme olması gerçekten çok güzel:

where orders.OrderDate=EOMONTH(orders.OrderDate)

Evet kitap 1 günde sabahtan akşama bitirebilecek bir kitap. SQL bilginizi tazelemek, SQL Server kullanmadan önce bir nasıl farklılıklar var acaba diye bakmak için kullanılabilecek bir kitap olarak dikkat çekiyor. Belirtilen tarzda çok fazla anlatım içermeden sorulara ve çözümlere odaklanan kitapların artması dileklerimle.

Kitabın linki:

Benim çözümlerime:

Link aşağıda:
https://storage.googleapis.com/blogiceriklerianil/icerik.rar
Link nerede: