SQL WHERE Komutu ve Şart İşlemleri

WHERE komutu veritabanından belirli şartlara göre sorgu yapmamızı sağlar. Böylelikle veritabanından çekeceğimiz verileri dilediğimizce filtreleyebiliriz.

Sorgu sözdizimi;

SELECT (sutunAdi) FROM (tabloAdi) WHERE (şartlar) şeklindedir.

WHERE komutunu kullanırken karşılaştırma ve mantıksal operatörlerinden yardım alabiliriz. Karşılaştırma ve Mantıksal operatörler aşağıda verilmiştir;

Karşılaştırma Operatörleri :

  1. Eşittir Operatörü (=)
  2. Eşit Değildir Operatörü (<> ya da !=)
  3. Büyüktür Operatörü (>)
  4. Küçüktür Operatörü (<)
  5. Büyük ya da Eşittir Operatörü (>=)
  6. Küçük ya da Eşittir Operatörü (<=)
  7. IS NULL Opratörü (IS NULL)

Mantıksal Operatörler :

  1. AND (VE) Operatörü (AND) ; Her iki şartta doğru ise
  2. OR (VEYA) Operatörü (OR) ; Şartların en az biri doğru ise
  3. NOT (DEĞİL) Operatörü (NOT) ; Şart doğru değilse Şimdi örneklerle açıklayalım;

Örneğin “ogrenci” tablosundan sadece Giresun’lu olan öğrencilerin adını çekelim;

Yukarıdaki kod ile “ogrenci” tablosundaki “sehir” sütununda “Giresun” kayıtlı olan öğrencilerin karşılaştırma operatörü olan eşittir operatörü ile sadece isimlerini çektik.

Sorgumuzun çıktısı aşağıdaki gibi olacak;

Şimdi dilerseniz birde mantıksal operatör olan AND operatörü ile Giresun’lu olan VE “id” değeri 10’dan küçük olan öğrencilerin tüm bilgilerini çekelim.

Sorgumuz aşağıdaki gibi olacak;

Yukarıdaki kodda “Giresun” değerini tırnak içerisinde yazmamızın sebebi, veri türünün VARCHAR (karakter) olmasıdır. “10” değerini tırnaksız olarak direkt yazmamızın sebebi ise veri türünün INT (INTEGER) olmasıdır.

Sorgumuzun çıktısı aşağıdaki gibi olacak;

Ayrıca şartları arama komutu LIKE, arasında komutu BETWEEN ve içinde komutu olan IN komutu ile sorgularımızı genişletebiliriz.

1- LIKE (Arama) Komutu :

Like komutu veriler içinde benzer kelimeleri aramak için kullanılır. LIKE komutu, şart komutu olan WHERE komutu ile birlikte kullanılır. LIKE ile arama yaparken bir takım arama karakterleri kullanılır. Bu karakterler yüzde “%” ve alt çizgi “_” karakterleridir.

İsterseniz şimdi LIKE komutunun nasıl kullanıldığına bakalım;

Yüzde (%) karakteri herhangi bir karakter grubu ya da cümlenin yerini tutar. Alt çizgi (_) karakteri ise yalnızca bir karakterin yerini tutar. Örneğin belli bir sütunda “M” harfi ile başlayan kayıtları çekmek istediğimizde “M%” ifadesini kullanırız. Bu da demk olur ki baş harfi “M” harfi ile başlasın ancak devamı herhangi birşey olabilir.

Baş harfi M ile başlayan tabloları bulmak için “M%” şeklinde bir LIKE şartı kullanılır.

Sorgu cümlemizin yapısı;

SELECT => (Çekilecek Alanlar) + (FROM) => (Tablo Adı) + (WHERE) => (sorgu yapılacak alan) + (LIKE) => (Aranacak kelime)

Kodalarımız ise aşağıdaki gibi olacak;

Yukarıdaki sorgu “ogrenci” tablosunda “adiSoyadi” sütununda baş harfi “M” ile başlayan satırları çeker.

Sorgu sonucu aşağıdaki gibidir;

Peki içerisinde herhangi bir karakter grubu geçen satırları nasıl arayacağız? O halde aranacak karakter grubunun başına ve sonuna “%” karakteri ekleyeceğiz.

Örneğin içerisinde “AR” karakter grubu geçen satırları çekelim ve çıktımıza bakalım;

Çıktımız;

Şimdi alt tire (_) kullanarak aramamızı karakter bazında gerçekleştirelim. Örnek olarak “ogrenci” tablosundan, “adiSoyadi” sütunundan isminin ikinci karakteri “a” olan isimleri çekelim;

Çıktımız aşağıdaki gibi olacak;

BETWEEN (Arasında) Komutu :

Bir sütundaki iki değer arasındaki verileri çekmek için kullanılır. Genellikle tarih aralıklarını ve e-ticaret sitelerinde fiyar aralıklarını sorgulamak için kullanılır. Örneğin biz öğrenci tablomuzda “id” değeri 7 ile 15 arasındaki öğrenci verilerini çekelim.

Sorgumuz aşağıdaki gibi olacak;

Sorgumuzun çıktısı ise aşağıdaki gibidir;

IN (İçinde) Komutu :

IN komutu içinde belirtilen kelimeleri barındıran satırları getirir.

Sözdizimi;

SELECT (alanAdi) FROM (tabloAdi) WHERE (sorgulanacakAlanAdi) IN (sorgulanacakIcerikler)

Örnek olarak öğrenci tablosundan “sehir” alanında İstanbul ve İzmir kayıtlı olan öğrencilerin isimlerini ve şehirlerini çekelim.

Kodlarımız aşağıdaki gibi olacaktır;

Çıktımız ise aşağıdaki gibi olacak;

 

Yorum Yap