يستخدم المعامل in لاتاحة أكثر من شرط بعد كلمة where
ونستطيع القول أن المعامل in بديل واضح عن المعامل or
فمثلا لدينا جدول المعلمين teachers الموضح فى الشكل التالي
ونريد استرجاع فقط اسماء المعلمين الذين محل سكنهم فى giza أو cairo
ونريد عرض أسماء المعلمين الذين تتطابق عنواينهم فى الجدول الأول مع عناوين المدارس فى الجدول الثاني .
نقوم بكتابة استعلام SQL يقوم
هذا الاستعلام بجلب اسماء المعلمين فى جدول المعلمين teachers
الذين عنوانهم يتوافق مع عنوان المدارس فى الجدول الثانى schools
نلاحظ نتيجة الاستعلام انه تم عرض أسماء بعض المعلمين في جدول المعلمين teachers والذين تتوافق عناوين سكنهم مع عنوان المدارس schools ونلاحظ أن تم عرض أسماء المعلمين الذين تتطابق عناوينهم مع عناويين المدارس فى الجدول الثانى schools وما عدا ذلك لن يتم عرضه.
ونستطيع القول أن المعامل in بديل واضح عن المعامل or
فمثلا لدينا جدول المعلمين teachers الموضح فى الشكل التالي
وسنقوم بإجراء اكثر من استعلام عليه لاستخلاص بعض القيم المحددة التى سنوضحها فى
الأمثلة التالية:-
ونريد استرجاع فقط اسماء المعلمين الذين محل سكنهم فى giza أو cairo
select tfname,tlname from teachers where address in ("giza",'cairo')
نلاحظ أنه لابد من وضع النصوص إما بين علامتي اقتباس مفردة ' ' أو مزودجة " " كما هو موضح.
الجدول التالي يعرض نتيجة استعلام sql
والذى قام باسترجاع أسماء المعلمين الذين يقع عنوانهم إما فى giza أو cairo
يقبل المعامل In جميع أنواع القيم سواء النصية أو الرقمية
فيمكن مثلا استرجاع أسماءالمعلمين في جدول المعلمين teachers الذين قيمة مرتباتهم salary إما 6700 أو 6800 أو 6900
select tfname ,tlname ,salary from teachers where salary in (6700,6800,6900);
نتيجة الاستعلام الذي يعرض أسماء المعلمين
الذين قيمة مرتباتهم إما 6700 أو 6800 أو 6900يستخدم In لربط أكثر من استعلام مع بعضهم البعض
فمثلا لعرض بيانات جميع المعلمين في جدول المعلمين teachers الذين عنوان سكنهم هو نفس عنوان المدارس الموجودة فى جدول المدارس schools
فى هذا المثال يوجد جدولان هما جدول
المعلمين teachers وبه
حقل العنوان الخاص بالمعلمين address وجدول المدارس schools وبه
حقل عنوان المدرسة saddressونريد عرض أسماء المعلمين الذين تتطابق عنواينهم فى الجدول الأول مع عناوين المدارس فى الجدول الثاني .
نلاحظ نتيجة الاستعلام انه تم عرض أسماء بعض المعلمين في جدول المعلمين teachers والذين تتوافق عناوين سكنهم مع عنوان المدارس schools ونلاحظ أن تم عرض أسماء المعلمين الذين تتطابق عناوينهم مع عناويين المدارس فى الجدول الثانى schools وما عدا ذلك لن يتم عرضه.
ملحوظة:-
يمكن استخدام النفي not in للحصول على كافة البيانات ماعد التى توجد داخل القوس
فمثلا لعرض جميع المرتبات التى يحصل عليها المدرسون ماعدا الذين قيمة مرتباتهم salary إما 6700 أو 6800 أو 6900
select tfname ,tlname ,salary from teachers where salary not in (6700,6800,6900);
ليست هناك تعليقات:
إرسال تعليق