Veri Bilimcinin Alet Çantası I: Temel SQL Komutları

Veri Bilimcinin Alet Çantası I: Temel SQL Komutları

Tablolar arasındaki verileri sorgulamak, ekleme veya güncelleme yapmak için sıkça kullanılan SQL dilinin temel anahtar komutlarını öğreniyoruz.
Melis Tekin Akçin02 Ağu 2023

SQL

SQL (Standard Query Language, Yapılandırılmış Sorgu Dili), veri tabanı oluşturmak ve yönetmek için kullanılan bir dildir. Veri tabanlarıyla iletişim kurulmasını sağlayan bir köprüdür. Veriye erişmek için ‘query’ adı verilen kod blokları yazılır. Bu kod blokları verinin filtrelenmesine, manipüle edilmesine, verinin analiz edilmesine ve ihtiyaç duyulan verinin veritabanından çıkarılmasına olanak sağlar. Bu yazıda bir veri bilimci ya da bir veri analizci için olmazsa olmaz yetkinliklerden biri olan SQL komutlarını ve genel yazım şekillerini (sentaks) inceleyeceğiz.

Not: Bu yazıda PostgreSQL’in genel kullanım kuralları incelenmesine karşın ilgili sentaksların birçoğu Oracle, MySQL gibi diğer SQL arayüzleri için de geçerlidir.


 

Ön açıklama: Bu yazıda w3schools sitesindeki veri tabanı kullanılmıştır. İlgili sitede istediğiniz senaryolarla bilgisayarınıza herhangi bir program indirmeden pratik yapabilirsiniz.


 

Select

Select komutu en çok kullanılan komutlardan biridir. Bu komut bir tablodan verinin seçilmesine yarar.

pastedGraphic.png

Bu komut ile veri setindeki tüm bilgiler ve sütunlar çağrılır. Veri setinin genel bir resmi çizilir.

pastedGraphic_1.png

Tüm sütunlar yerine yalnızca belli sütunlar çağrılmak istenirse komut aşağıdaki gibi kullanılır. Bu örnekte tüm sütunlar yerine yalnızca CustomerName isimli sütun seçilmiştir.

pastedGraphic_2.png

Not: SQL komutları genellikle büyük harf kullanılarak yazılır. Bunun nedeni kodun daha kolay okunmasını sağlamaktır (bir nevi adettendir de denilebilir). Küçük harf kullanımında herhangi bir hata ile karşılaşılmaz. 

Benzer şekilde kodlar ‘;’ ile bitirilir. Noktalı virgül kullanımı yukarıda bahsedilen büyük harf kullanımına benzer şekilde herhangi bir hata alınacağından değil, kodun daha kolay okunmasını sağlayacağındandır. Özellikle SQL ile veri analiz edilirken birçok satır kod yazılabileceğinden noktalı virgül kullanımı işleri kolaylaştıracaktır.


 

Select Distinct

Bir veri bilimcinin en çok karşılaştığı problemlerden biri duplicate (yinelenen)  verilerdir. Analizleri yaparken daha sağlıklı sonuçlar elde etmek için yinelenen verilerden sadece bir tanesiyle devam etmek istenir. Ya da bazı durumlarda bir değişkendeki farklı değerler incelenmek istenir. Bu gibi durumlarda kullanılan komut SELECT DISTINCT komutudur.

pastedGraphic_3.png

Bu ifade, Customer tablosunda kaç farklı şehir olduğu bilgisini verir.


 

Select Where

SELECT WHERE komutu veriyi filtrelemek için ya da veriye bir koşul koymak için kullanılır. Aşağıdaki mantıksal işlemlerle birlikte kullanılarak birden fazla koşul da birleştirilebilir:

  • = eşit
  • != eşit değil 
  • > = büyük eşit 
  • < = küçük eşit 
  • AND ve
  • OR veya.


 

pastedGraphic_4.png


 

pastedGraphic_5.png

Bu ifadenin çıktısı aşağıdaki gibi olur:

pastedGraphic_6.png


 

Count

COUNT fonksiyonu veri setindeki satır sayısını ya da diğer bir deyişle gözlem sayısını verir.


 

pastedGraphic_7.png

Not: Verideki satır sayısı hangi sütun kullanılırsa kullanılsın aynı sonucu vereceği için  COUNT(sütun_adı) veya COUNT(*) komutlarından herhangi biri kullanılabilir. Fakat, ilerleyen zamanlarda yazılan kod tekrar okunduğunda, kod yazılırken nasıl bir problemle uğraşıldığını hatırlayabilmek için sütun adı ile birlikte kullanmak daha kullanışlı olacaktır. 

pastedGraphic_8.png

Bu ifade veri tabanında kaç farklı ülke olduğu bilgisini üretir. 


 

Upper / Lower

UPPER ve LOWER fonksiyonları string (karakter) bir string ifadeyi büyük ya da küçük harfe dönüştürmek için kullanılır. Örneğin, veri setinde bir string ifadeye ait gözlemler bulunmak istensin, ancak ilgili değişkenin veri setinde büyük harf mi yoksa küçük harf mi kullanılarak yazıldığından emin olunmasın.  ‘=’ mantıksal operatörü, büyük/küçük harfe duyarlı olduğundan verilerin bir kısmı kaybedilebilir. Bu gibi senaryolar için UPPER veya LOWER fonksiyonu kullanılabilir.

pastedGraphic_9.png

Yukarıdaki kodun ilk kısımda şehir sütunu küçük harfe çevriliyor ve ‘berlin’ ifadesi aranıyor. İkinci kısımda ise sütun büyük harfe çevriliyor ve bu sefer de ‘LONDON’ ifadesine eşit olanlar aranıyor. Bu ifadenin çıktısı aşağıdaki gibi olur:

pastedGraphic_10.png


 


 

Order By 

ORDER BY komutu bir sütunu artan (ASC) ya da azalan (DESC) şekilde sıralamak için kullanılır. Sayısal ifadeler küçükten büyüğe ya da büyükten küçüğe, karakter ifadeler ise alfabetik ya da ters sırada sıralanır.

SQL’de varsayılan, verilerin artan biçimde sıralanmasıdır (ASC). SQL’e sıralama şekli özel olarak belirtilmediği sürece veriler artarak sıralanır. 

pastedGraphic_11.png

pastedGraphic_12.png

Bu ifade Price sütununu en büyükten en küçüğe doğru sıralar. Bu çıktıya göre en pahalı ürün 263.5 birim fiyatıyla Cote de Blaye’dir.


 

Limit

LIMIT ifadesi, çıktısı alınmak istenen gözlem sayısını verir.

Not: Büyük bir veri setiyle çalışılması halinde, veri analiz edilirken her SQL kodunun sonuna LIMIT ifadesiyle bir sınır koymak işlemin daha hızlı gerçekleşmesini sağlar. 

pastedGraphic_13.png

Bu ifade, CategoryID değeri 1 olan en pahalı 5 ürünü verir.

pastedGraphic_14.png


 

Between

BETWEEN operatörü belli bir aralıktaki değerleri seçmek için kullanılır.

pastedGraphic_15.png

Not: BETWEEN operatörü kullanılırken yazılan alt ve üst sınırlar aralığa dahildir. Diğer bir deyişle “> =” ve “< =” ifadelerini kullanmak ile aynı sonuç elde edilir. Aralığın dışında kalan değerler seçilmek istenirse NOT BETWEEN ifadesi kullanılır.


 

İn

IN operatörü, bir listeye ait olan ifadeleri seçmek için kullanılır. 

pastedGraphic_16.png

BETWEEN komutuna benzer şekilde, bir listeye ait olmayanlar  NOT IN kullanılarak seçilir.  

pastedGraphic_17.png


 

Like ve Ilike

LIKE ve ILIKE operatörleri verideki örüntüleri seçmek için kullanılır.

  • “%” sembolü herhangi bir karakter dizisini seçmek için kullanılır. Örneğin ‘A’ ile başlayan ifadeleri seçmek için:

pastedGraphic_18.png

  • Veya ‘A’ ile biten ifadeleri seçmek için:

pastedGraphic_19.png

  • ‘A’ yı ifadenin herhangi bir yerinde içerenleri bulmak için:

pastedGraphic_20.png

LIKE operatörü büyük ve küçük harfe duyarlıdır. Büyük ve küçük harfe duyarlı olmaması için LIKE yerine ILIKE operatörü kullanılabilir.

Eğer veri setinde belli bir örüntünün dışındaki değerler alınmak isteniyorsa NOT LIKE ifadesi kullanılabilir.

pastedGraphic_21.png


 

Aggregate

Aggregate fonksiyonları birden çok girdi değerine karşılık tek bir sonuç verir ve sayısal değişkenlere uygulanır. Çok kullanılan aggregate fonksiyonlarından bazıları aşağıdaki gibidir:

  • MIN() → Verideki en küçük değeri verir.
  • MAX() → Verideki en büyük değeri verir.
  • AVG() → Verinin ortalamasını verir.
  • COUNT() → Gözlem sayısını diğer bir deyişle satır sayısını verir.
  • SUM() → Değerlerin toplamını verir.


 

Sütun Alias

Bir sütuna isim vermek istendiğinde AS ifadesi kullanılır. İsimlendirme yalnızca query süresince geçerlidir. Özellikle aggregate fonksiyonları kullanılarak elde edilen sütunlara alias vermek çıktı yorumlanırken kolaylık sağlar.

pastedGraphic_22.png

Bu ifadenin çıktısı aşağıdaki gibidir:

pastedGraphic_23.png

Çıktı incelendiğinde, ortalama değeri ROUND fonksiyonuyla daha okunaklı hale getirilebilir. Örneğin virgülden sonra 2 basamak kullanmak için aşağıdaki kod yazılır.

pastedGraphic_24.png

Son olarak, şu ana kadar işlenen ifadelerin çoğunu içeren bir query ile yazıyı sonlandıralım:

pastedGraphic_25.png

Yukarıdaki SQL sorgusu ile  Supplier ID değeri 1 veya 2 olan, ürün adı L ile başlamayan ve ücreti 10 birimden büyük olan en yüksek ücrete sahip ilk 5 ürünün bilgisine erişilir:

pastedGraphic_26.png

Bu yazımızda veri ile uğraşan tüm profesyonellerin bilmesi gereken SQL sorgu diline ait temel komutları inceledik. Veri bilimi, SQL ve daha birçok konu başlığında kendinizi geliştirmek için Miuul’un sunmuş olduğu eğitimleri inceleyebilirsiniz.


 

Kaynaklar

Udemy, Portilla J., The complete SQL bootcamp: Go from zero to hero

Udemy, Çolakoğlu Ö., Uygulamalarla SQL öğreniyorum

W3Schools, SQL Tutorial

Medium, Akçin M. T., The Essential Toolbox: Fundamental SQL Statements-I


 

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.