Bir önceki yazımda Sql Where sorguları hakkında yazı yazacağımı söylemiştim.
Sql select ifadelerinde  where deyimini sıkça kullanırız. İlk olarak Where ne işe yarar ondan bahsedeyim zaten bunun sonunda neden sık kullandığımızı anlamış olacaksınız. Veritabanında ki tablolardan veri çekerken bazen bütün kayıtları değilde bir kısmını görmek isteyebiliriz. İşte bu tür durumlarda where ile sorgu yazarız. Kısacası verileri filtreleyerek getirmemizi sağlar. Database deki verilerden Where ile yazdığımız şartlara uyan sonuçları görürüz.
Where ifadesinin çeşitli kullanım alanları vardır. Kısaca bunlarla ilgili örnekler vererek açıklayalım.

Select….Where Syntax:


Select [Kolon_Adı],[Kolon_Adı], … from [Tablo_Adı]  Where [Şartlar]

Where şartı olarak yazılabilecek basit bir örnek yazalım.

select employee_id,first_name,last_name,salary,department_id
from employees
where department_id =90
Bu sorgu ile sadece department_id’si 90 olan veriler gelir.

Where ile String İfade Aratma Yöntemleri

String ifade aramada dikkat edilmesi gereken en önemli husus arama yapılacak tablonun veri tipi string bir ifade olmalı. yani veri tipi text, nvarchar gibi string ifadeleri temsil etmeli int,tinyint gibi ifadeler yukarıdaki örnekteki gibi yazılır.
String ifade ile ilgili şöyle bir sorgu yazalım.
select employee_id,first_name,last_name,salary
from employees
where last_name=’Whalen’
Last_name(Soyadı) Whalen olanları getirir. Küçük harf büyük harfe duyarlıdır.

Kıyaslama Operatörlerinin Kullanımı

Bu konuda birden fazla sorgu yazacağım fakat hepsini resim ile göstermeyeceğim. Uygulayarak anlaşılabilecek şeyler zaten.
select employee_id,first_name,last_name,salary from employees
where salary>9000
Bu sorgu ile salary değeri 9000 den büyük olanlar gösterilir.select employee_id,first_name,last_name,salary from employees
where salary>9000 and salary<17000

Bu sorgu ise salary değeri 9000 den büyük 17000 den küçük sayıları gösterir.

select first_name,last_name,manager_id from hr.employees
where manager_id in(120,122,145)

Maneger_id değerleri 120,122 ve 145 olan değerleri gösterir.

Bunlar integer değerler için kıyaslama operatörleriydi. Şimdi de Sql dilinde String ifadelerin hangi ifade çeşitleriyle arandığına bakalım.
select first_name,last_name,manager_id from hr.employees
where first_name like’S%’
Like ifadesi ile harf araması yapabiliriz.
Bunun belirli bir mantığı var tabiki de % işareti ile arama şekli belirlenir. Aşağıdaki örneklerle yazılan ifadeleri ve ne anlama geldiğini açıklayalım.
‘S%’  kelimenin başında S harfi olan değerleri getirir.
‘%S’  kelimenin sonunda S harfi olan değerleri getirir.
‘%S%’ içerisinde S harfi olan değerleri gösterir.
Not: Büyük ve küçük harfe duyarlıdır. Eğer büyük harf olarak yazarsak sadece büyük olanları getirir.

Mantıksal Operatörlerin Kullanılması

Bu operatörleri birden fazla kıyaslama yapmak istediğimiz de kullanırız. Başlıca mantık operatörleri and,or,not in diyebiliriz.select employee_id,first_name,last_name,job_id,salary from employees
where salary>=10000
and job_id like ‘%MAN%’
and mantıksal operatörü sayesiyle salary değeri 10000 den büyük veya eşit olanları ve  job_id içinde MAN geçen değerleri bize getirir. and ifadesinde aynı satırda bu iki durumun gerçekleşmesi gerekir. Bunu için sql sorgunun aşağıdaki resimdeki örneğini inceleyin.

Aşağıdaki örnekte ise or(veya) şartı gösterilmektedir.
select employee_id,first_name,last_name,job_id,salary from employees
where salary>=10000
or job_id like ‘%MAN%’
Bu operatör de ise koşullardan herhangi bir şartın gerçekleşmesi yeterlidir.
select employee_id,first_name,last_name,job_id,salary from employees
where first_name
not in (‘Steven’,’Lex’,’Neena’)

NOT operatörü bir şartın doğruluk değeri TRUE ise FALSE, FALSE ise TRUE değerini döndürmesini sağlar. Bu operatör IN, LIKE, NULL operatörleri ile kullanılabilir. Yani;
örnekte gördüğümüz değerlerin yani;
First_name(ismi) Steven,Lex,Neena olan kişilerin değerleri getirilmez.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir