تربط AND وOR وNOT شروط WHERE في Oracle. AND تتطلب تحقق الطرفين، وOR يكفيها تحقق أحدهما، وNOT تعكس نتيجة منطقية مع مراعاة الحالة غير المعروفة الناتجة عن NULL.
تستخدم الأمثلة جداول التدريب في درس إنشاء جداول وبيانات تدريب Oracle. نفّذ إعدادها مرة واحدة في مخطط تدريب قبل الاستعلامات، حتى تتطابق أسماء الأعمدة والنتائج.
مثال SQL قابل للنسخ
SELECT emp_id, emp_name
FROM gc_employees
WHERE salary > 4000 AND job = 'developer'
ORDER BY emp_id;
SELECT emp_id, emp_name
FROM gc_employees
WHERE salary > 6000 OR job = 'marketing'
ORDER BY emp_id;
SELECT emp_id, emp_name
FROM gc_employees
WHERE NOT (job = 'developer')
ORDER BY emp_id;
SELECT emp_id, emp_name
FROM gc_employees
WHERE emp_id NOT IN (1, 3)
ORDER BY emp_id;نتائج أمثلة التدريب
يعيد AND الموظفين 1 و2، ويعيد OR الموظفين 2 و3 و4. يعيد NOT الخاص بالوظيفة الموظفين 3 و4 و6؛ Mona لا تظهر لأن مقارنة وظيفتها المجهولة ليست TRUE أو FALSE بل UNKNOWN. أما NOT IN لقائمة معرفات ثابتة فيستبعد 1 و3 ويحتفظ ببقية المعرفات.
NULL ليست قيمة عادية
NOT UNKNOWN تبقى UNKNOWN، فلا تصبح TRUE لمجرد وضع NOT. إذا أردت ضم الوظائف المجهولة فاكتب شرط IS NULL صراحة مع بقية الشروط. لا تستخدم = NULL أو != NULL بدل IS NULL أو IS NOT NULL.
NOT IN والاستعلامات الفرعية
إذا احتوت قائمة NOT IN على NULL فقد لا يرجع الشرط أي صف، حتى لو كانت بقية القيم واضحة. عند الاستعلام عن علاقات غير موجودة يكون NOT EXISTS مع شرط ربط صحيح خيارًا واضح المعنى. استخدم الأقواس لتوثيق الغرض عندما تخلط أكثر من رابط منطقي.
الصور والفيديو من الشرح السابق
الكود النصي أعلاه هو النسخة المصححة؛ قد تختلف المواد المرئية السابقة في أسماء المتغيرات أو طريقة التشغيل.







