المعاملات المنطقية في SQL
< SQL
غالبًا ما تستخدم المعاملات المنطقية (AND و OR و NOT) في عبارة WHERE للربط ما بين الشروط أو نفيها، إذ يستخدم المعامل AND للربط ما بين الشروط للتأكد من تحققها جميعًا، أما معامل OR فيستخدم للربط ما بين الشروط للتأكد من تحقّق شرطٍ أو أكثر من بينها، أما NOT فيستخدم بغرض النفي، وتكون قيمة التعبير النهائية منطقية (Boolean) إما TRUE أو FALSE.
ويُضاف لها معامل XOR في محرك MySQL والذي يتحقق من تحقّق شرطٍ واحدٍ فقط دون الشروط الأخرى.
مثال
إن كان الجدول الآتي cars موجودًا في قاعدة البيانات:
| Colour | Price | Year | Company | Model | CarID |
|---|---|---|---|---|---|
| White | 22,500 | 2018 | KIA | Optima | 05081 |
| Red | 25,995 | 2017 | KIA | Optima Hybrid | 05082 |
| Red | 31,900 | 2018 | KIA | Stinger | 05083 |
| Black | 31,990 | 2017 | KIA | Cadenza | 05084 |
| Blue | 23,240 | 2018 | KIA | Niro | 05085 |
| Grey | 14,200 | 2018 | KIA | Rio 5-Door | 05086 |
| Blue | 18,200 | 2018 | KIA | Forte5 | 05087 |
| Blue | 32,250 | 2017 | KIA | Soul EV | 05088 |
إن تنفيذ الاستعلام الآتي:
SELECT *
FROM cars
WHERE Year=2018 AND NOT (Colour = ‘Red’ OR Colour = ‘Blue’);
سيُظهِر كافة السيارات التي تكون فيها قيمة السنة 2018 وأي قيمة للون باستثناء القيمتين Red أو Blue، وستظهر النتائج الآتية:
| Colour | Price | Year | Company | Model | CarID |
|---|---|---|---|---|---|
| White | 22,500 | 2018 | KIA | Optima | 05081 |
| Grey | 14,200 | 2018 | KIA | Rio 5-Door | 05086 |
التوافقية
| SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
|---|---|---|---|---|
| نعم | نعم | نعم | نعم | نعم |