Merhabalar arkadaşlar, bu yazımda SQL LIKE,IN,UPPER,LOWER kullanımlarından bahsedeceğim. Anlaşılabilir olması için uzatarak anlatacağım umarım sıkılmazsınız 🙂
- LIKE Kullanımı
LIKE, genelde string kolonlar üzerinde arama yapmak için kullanılır. First_name kolonu olan bir tabloda first_name i A ile başlayan kişileri listelemek istiyoruz ya da bir kolon bazında bir değer döndürmek istiyoruz fakat şart olarak koyacağımız kolonun içerisindeki datanın tamamını bilemiyoruz sadece bir kısmını bilebiliyoruz. Bu durumlarda LIKE komutu kullanılır. Şimdi örnek üzerinden ilerleyelim. Öncelikle DB mizde hazır bulunan employees tablosunda first_name kolonu içerisinde A harfi ile başlayan datalarımızı listeleyelim Öncesinde kullanım şekli aşağıdaki gibidir;
SELECT * FROM [TabloAdi] WHERE [KolonAdi] LIKE 'Sart';

Görüldüğü üzere where şartında LIKE komutu ile koymuş olduğumuz şarta uygun olacak şekilde first_name değeri A ile başlayan değer gelmiş oldu. Burada bilinmesi gereken noktalar şunlardır;
- % İşaretinin Sonda Kullanımı : Eğer döndürmek istediğimiz verileri ilk değerine göre filtrelemek istiyorsak, ilk değeri yazarız ve sonrasında % işaretini koyarız. Mesela yukarıdaki örnekte sorguda şunu demiş olduk; “first_name” i A ile başlayan gerisinin herhangi bir önemi olmayan dataları getir” demiş olduk. Burada dikkat edilmesi gereken nokta Oracle DB nin büyük harf küçük harf duyarlı olmasıdır. Yani tablodaki datanız küçük harflerle yazıldıysa sizde büyük harfle arama yaptıysanız herhangi bir sonuç dönmez.
- % İşaretinin Başta Kullanımı : Yukarıdaki örnekte şartımız ………’%a’ şekilde olsaydı first_name değerinin hangi harflerle başladığının bir önemi yok a harfi ile bitsin şeklinde bir şey demiş olurduk.
- % İşaretinin Hem Başta Hem Sonda Kullanımı : Bu durumda da iki yüzde işaretinin arasına yazdığımız string ifadeyi where şartında belirlemiş olduğumuz kolon üzerinde arar. Mesela yukarıdaki örnekte %a% şeklinde bir şart verseydik, first_name kolonunda a harfi geçen kayıtları listelemiş olacaktık.
- IN KULLANIMI
In kullanımında ise birden çok and kullanılma ihtiyacı oluştuğunda kullanılır. Mesela first_name i halil olan ve ibrahim olan ve meryem olan kayıtları görmek istediğimizde …… where first_name=’halil’ and first_name=’ibrahim’….. şeklinde devam eden sorgu oluşturacaktık. Bu tarz durumlarda IN ifadesi kullanılır. Yani …… where first_name IN (‘halil’,’ibrahim’,’meryem’) şeklinde bir yapı kurmuş olacaktık.
Select * from [TabloAdi] where [KolonAdi] IN ('(Şart1)','Şart2',....'Şart-n');
- UPPER-LOWER Kullanımı
Upper ve Lower genelde where şartından sonra string ifadeler üzerinde kullanılır. Oracle DB büyük/küçük harf uyumlu olduğu için string bir ifadeyi ararken DB de nasıl kayıtlı olduğunu bilemeyebiliriz. Bu durumda DB de “Halil” olarak kayıtlı bir ifadeyi araştırırken ….. where first_name =’halil’ şeklinde araştırırsak Oracle bize herhangi bir sonuç döndürmeyecektir. Bunun için upper veya lower kullanarak bu sorunu ortadan kaldırabiliriz. Upper büyük harf, Lower ise küçük harf anlamına gelmektedir. Yani ……where lower(first_name)=’halil’ şeklinde bir sorgu attığımızda oracle kendisinde bulunan kayıtları küçülterek arama yapar. Aynı şey Upper için de geçerlidir. Yani upper da ise kendisindeki kayıtları büyük harfe dönüştürülmüş halinde arama yapmaktadır.
Bu yazımda anlatacaklarım bu kadardı. Umarım faydalı olmuştur, herkese iyi çalışmalar 🙂