Tags
not, not operatörü, Null, or, Oracle Sql, Oracle sql and, Oracle Sql And operatörü, Oracle Sql like, Oracle Sql like koşulu, Oracle Sql not, Oracle Sql Not operatörü, Oracle Sql Or operatörü, Sql and, Sql like
Merhaba Arkadaşlar bu yazımızda Oracle veri tabanında where ibaresi kullanarak verilerimizi çeşitli koşullara bağlı olarak monitör etmeye devam edeceğiz.Yazımızda Like koşulu, and,or ve not operatörlerinden bahsedeceğim ve örneklerle anlatmaya çalışacağım.
LIKE Koşulu;
Like koşulu where ibaresinden sonra kullanılır. Amacı verilerimizi belirli bir koşula göre monitör etmemizi sağlar. Örnek olarak Çalışanlarımızın soy isimlerinin baş harfi H olanları görüntülemek istediğimizde
Select last_name from employees where last_name like ‘H%’;
Bu şekilde kullanılır. Daha önce where kullanımından bahsetmiştik. Koşul belirttiğimiz veri, veritabanımızda nasıl kayıtlıysa o şekilde yazmalıyız. Burada biz last_name kolonundaki verilerin ilk harflerinin büyük olarak veri tabanında tutulduğunu bildiğimiz için o şekilde yazdık sorgumuzu.
Like koşulunun belirli kullanımları;
Like ‘_a%’ Burada aradığımız koşul ilk harfi önemli değil 2. harf a olması Like ‘%a%’ Burada aradığımız koşul veri içinde a harfi olması yeterli. Like ‘%a’ Burada aradığımız koşul verinin son harfinin a olması.
Like Koşulu ve Escape kullanımı;
Arkadaşlar bazı durumlarda aradığımız koşul içerisinde ‘_’ alt tire kullanmamız gerekebilir.Yukarıda belirttiğim gibi (Like ‘_a%’) bu durumda Oracle veri tabanı alt tiremizi bir koşul olarak algılıyor halbuki biz koşulumuzu verimizin içinde alt çizgi olduğunu belirterek yazıyoruz. Bu gibi durumlarda Escape kullanmamız gerekecektir.
Örnek olarak veri tabanımızda kayıtlı olan çalışanlardan job_id si SH_ ile başlayanları görmek istiyorum.
select last_name,job_id from employees
where job_id like ‘SH_%’; Sorgumuzu bu şekilde yazdığımızda Oracle veri tabanı alt çizgiyi SH den sonra herhangi bir karaktere sahip olan verileri getirecek(SHXXXX gibi) halbuki ben SH_XXX olanlar gelsin istiyorum. Bunun için aşağıdaki sorguyu kullanırım
select last_name,job_id from employees
where job_id like ‘SH\_%’ ESCAPE ‘\’; Bu sorgu doğru olacaktır. Burada Escape, ‘\’ dan sonra gelen özel karakteri normal karakter gibi algılamasını sağlıyor ve operasyonumuzun düzgün çalışmasını sağlıyor..
Null koşulu; select last_name, manager_id from employees where manager_id is null; Burada Employees tablomuzda, manager_id si null olan yani muhtemelen patronumuzu monitör ettik.
Koşulların Mantık Operatörleriyle Kullanılımı;
Arkadaşlar bu yazımızda ve önceki yazımızda belirli koşullarla verilerimizi monitör etmiştik. Şimdi de bu koşullarla birlikte mantıksal operatörlerimizi kullanıp işimizi daha da kolaylaştıracağız.
And Operatörü Kullanımı; Arkadaşlar And operatöründe belirttiğimiz koşulların hepsi sağlanması zorunludur. Aşağıda verdiğim örnekde 2 koşuluda sağlayan veriler monitör edilmiştir.
select employee_id,last_name, job_id,salary from employees
where salary >=10000 and job_id like ‘%MAN%’;
Burada employees tablomuz’da maaşı 10000 tl nin üzerinde olanları ve job_id si içerisinde MAN olanları monitör ettik.
OR Operatörünün Kullanımı; Arkadaşlar Or operatöründe And’den farklı olarak belirtilen herhangi bir koşulu sağlayan veriler ekrana monitör edilir.
select employee_id,last_name, job_id,salary from employees
where salary >=10000 or job_id like ‘%MAN%’;
Burada Görüldüğü gibi maaşı 10000 tl den fazla olup job_id si içerisinde ‘MAN’ bulunmayanlar ve job_id si ‘MAN’ olup maaşı 10000 tl’den düşük çalışanlarımız monitör edilmiştir. Dediğim gibi belirtilen herhangi bir koşulun sağlanması yeterli diğer koşula bakılmayacaktır.
Not Operatörü Kullanımı;
Arkadaşlar Not operatörü in,between veya like ile kullanılabilir. Genelde bazı koşulları hariç tutmak istediğimizde kullanılırız. Mesela employees tablomuzda bulunan çalışanlarımızdan job_id si ‘IT_PROG’,’AC_MGR’,’MK_MAN’ olmayanları monitör ediyoruz.. Daha önce in kullanımından bahsetmiştik.
select last_name, job_id from employees
where job_id not in (‘IT_PROG’,’AC_MGR’,’MK_MAN’);
… WHERE job_id NOT IN (‘AC_ACCOUNT’, ‘AD_VP’)
… WHERE salary NOT BETWEEN 10000 AND 15000
… WHERE last_name NOT LIKE ‘%A%’
… WHERE commission_pct IS NOT NULL
Not operatörü bu şekillerde kullanılabilir.