Temel Veritabanı Eğitimi | 7 – Mantıksal Koşullar

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.

  1. 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.
  2. 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.
  3. 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ı

  1. SELECT last_name, job_id, salary FROM employees
    WHERE job_id = ‘SA_REP’
    OR job_id = ‘AD_PRES’
    AND salary > 15000;
  2. 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.

Cumhuriyet Üniversitesi Yönetim Bilişim Sistemleri Bölümü 4. sınıf öğrencisi olan Yeşiltepe, Certified Ethical Hacker ve Sızma Testi eğitimleri almıştır. Kendisini Network, System ve Cyber Intelligence alanlarında yetiştirmektedir. Bulunduğu üniversitede Siber Güvenlik Topluluğu kurucusu olan Yeşiltepe, bilgi güvenliği farkındalığını artırmak ve siber güvenlik alanında yetişecek insan sayısına katkıda bulunmak için çeşitli çalışmalar yürütmektedir. 2018 yılının son aylarına doğru p4wsec takımını kurduktan sonra ekip arkadaşları ile birlikte Vulnerable VM çözümlerini yayımlayarak bu alana ilgi duyan kişilerin farklı yöntemler öğrenmelerine katkı sağlamaya devam etmektedir.