Operator | Meaning |
AND | Her iki bilenşende doğruysa TRUE değeri döndürür. |
OR | Bileşenlerden yalnızca bir tanesi doğruysa TRUE değeri döndürür. |
NOT | Koşul yanlışsa TRUE değeri döndürür. |
AND Kullanımı
SELECT employee_id, last_name, job_id, salary FROM employees
WHERE salary >= 10000
AND job_id LIKE ‘%MAN%’;
Yukarıdaki sorguda “employees tablosundan employee_id ‘ yi , last_name ‘ i , job_id ‘ yi ve salary ‘ yi getir ama bir şartım var. Salary ‘ si 10000 e eşit veya 10000 ‘ den büyük olanları ve job_id ‘ sinin içinde MAN geçenlerin employee_id ‘ sini last_name ‘ ini job_id ‘ sini ve salary ‘ sini getir” demiş olduk.
Yani şöyle örnek verelim.
- Numan TÜRLE isminde birinin maaşı 10000 TL olsun. İşi de IT_MAN ( IT Manager ) olsun. Bu durumda Numan TÜRLE ‘ nin yukarıdaki sorguda istenilen bilgileri getirilecektir.
- Fatih Mehmet DİŞÇİOĞLU isminde birinin maaşı 12000 TL olsun. İşi de IT_MAN ( IT Manager ) olsun. Bu durumda Fatih Mehmet DİŞÇİOĞLU ‘ nun yukarıdaki sorguda istenilen bilgileri getirilecektir.
- Murat YEŞİLTEPE isminde birinin maaşı 10000 olsun. İşi ise PENT olsun. Bu durumda Murat YEŞİLTEPE ‘ nin yukarıdaki sorguda istenilen bilgileri GETİRİLMEYECEKTİR veya maaşı 9000 iken işi IT_MAN ( IT Manager ) olsun. Bu durumda da istenilen bilgiler GETİRİLMEYECEKTİR.
Çünkü AND operatörü her iki durumunda doğru olduğu ( yani hem maaşı 10000 veya 10000 ‘ den büyük olacak hem de işinin içinde “MAN” geçecek ) durumlarda sorguya başarı getirir.
OR Kullanımı
SELECT employee_id, last_name, job_id, salary FROM employees
WHERE salary >= 10000
OR job_id LIKE ‘%MAN%’;
Yukarıdaki sorguda “employees tablosundan employee_id ‘ yi , last_name ‘ i , job_id ‘ yi ve salary ‘ i getir ama bir şartım var salary ‘ si 10000 yada 10000 ‘ den büyük olanları veya job_id ‘ sinin içinde “MAN” geçenleri getir” demiş olduk.
Bu durumda;
Maaşı 10000 veya işi PENT olanı da,
Maaşı 12000 veya işi PENT olanı da,
Maaşı 9000 veya işi IT_MAN olanı da getirecektir.
Yani;
Hem Numan TÜRLE ‘ nin bilgileri, hem Fatih Mehmet DİŞÇİOĞLU ‘ nun bilgileri hem de Murat YEŞİLTEPE ‘ nin bilgileri getirilecektir.
NOT Kullanımı
SELECT last_name, job_id FROM employees
WHERE job_id NOT IN (‘IT_PROG’, ‘ST_CLERK’, ‘SA_REP’);
Yukarıdaki sorguda “employees tablosundan last_name ‘ i , job_id ‘ yi getir ama bir şartım var job_id ‘ si IT_PROG, ST_CLERK veya SA_REP dışında olanları getir” demiş olduk.
Yani job_id ‘ si IT_MAN olanları da PENT olanları da veya IT_PROG, ST_CLERK, SA_REP dışında kalan bütün job_id ‘ lerin bilgilerini getirmiş oluruz.
OR – AND Öncelik Kuralları
- SELECT last_name, job_id, salary FROM employees
WHERE job_id = ‘SA_REP’
OR job_id = ‘AD_PRES’
AND salary > 15000; - SELECT last_name, job_id, salary FROM employees
WHERE ( job_id = ‘SA_REP’
OR job_id = ‘AD_PRES’ )
AND salary > 15000;
Birinci örnekte job_id ‘ si SA_REP olacak veya job_id ‘ si AD_PRES ve salary ‘ si 15000 ‘ den büyük olacak dedik. Yani job_id ‘ si AD_PRES olanın maaşının 15000 ‘ den büyük olması zorunlu tutulmuş. Eğer 15000 ‘ den büyük değilse getirme kardeşim! Demiş olduk.
İkinci örnekte job_id ‘ si SA_REP veya AD_PRES olacak ve maaşı 15000 ‘ den büyük olacak dedik. Yani maaşı kesinlikle 15000 ‘ den büyük olmalı ama job_id ‘ si ister SA_REP olsun ister AD_PRES olsun demiş olduk.