الرئيسية
سجل الزوار
القائمة البريدية
راسلنا
خريطة الموقع
جديد الصور
جديد البطاقات
جديد الصوتيات
المتواجدون الآن
تغذيات RSS
2012-08-15 03:34
عرفنا على ماهيّة الشرط في أمر Select في الجزء الأول من الدرس .. نتحدث عن الشروط بإسهاب في الجزء الثاني :
طريقة استخدام كلمة BETWEEN في الشرط فهي كالتالي :
نستخدم BETWEEN ... AND في الشرط لتحديد النطاق أو المدى للبيانات التي نريدها ، فنطلب بيانات محصورة بين قيمتين عن طريق إضافة هذه القيمتين في الشرط باستخدام BETWEEN ... AND ،القيم من الممكن أن تكون نصوص أو أرقام أو تواريخ ، صياغة الأمر في هذه الحالة تكون كالتالي :
SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2;
أمثلة :
كي نسترجع سجلات الموظفين الذين تتراوح أرقامهم ما بين الرقم 10 إلى الرقم 40 ، نكتب الأمر التالي :
SELECT * FROM EMPLOYEE
WHERE NUMBER BETWEEN 10 AND 40;
وفي النتيجة ستترتب السجلات تصاعدياً من حيث الحقل الذي ذكرناه في الشرط ، وهو في هذا المثال : NUMBER
، فإننا نسترجع القيم التي بينهما مرتبة أبجدياً ، وليس كما هي مرتبة أو مخزنة في الجدول ، مثال : لاسترجاع سجلات الموظفين الذين تقع أسماؤهم الأخيرة بين " حمد " و " علي " نكتب الأمر - تذكر أن البحث عن النصوص خاضع لحكم الترتيب الأبجدي -:
SELECT * FROM EMPLOYEE
WHERE LNAME BETWEEN 'حمد' AND 'علي';
والنتيجة هنا ستكون عبارة عن ثلاث سجلات فقط ومرتبة أبجدياً كما سنرى في الصورة حيث أن سجل حمد قبل سجلا علي ( في حقل LNAME ) :
ملاحظة مهمة :
تختلف برامج قواعد البيانات في طريقة تعاملها مع BETWEEN ... AND ، فبعض البرامج تعتبر القمتين المحددتين من ضمن نطاق البحث فتكون موجودة في النتائج ، وبعضها لا تعتبرها كذلك فلا تشملها النتائج ، وبعضها يعتبر القيمة الأولى داخل نطاق البحث والقيمة الثانية خارج النطاق وهكذا ، لذلك لابد من أن تتعرف على برنامجك بالتجربة !!والتجربة خير برهان .
هذا بالنسبة لكلمة BETWEEN ، أما طريقة استخدام كلمة LIKE في الشرط فهي كالتالي :
نستخدم كلمة LIKE في الشرط كي تبحث لنا عن جميع البيانات التي تشترك في معيار معين نحدده نحن بواسطة هذه الكلمة ، وصياغة الأمر في هذه الحالة يكون كالتالي :
SELECT column FROM table
WHERE column LIKE pattern معيار ;
الحكمة في استخدام LIKE هي أنه يمكنك أن تبحث بها بواسطة جزء من البيان إن لم تكن تعرف البيان كاملاً ، فلو كنّا نعرفه كاملاً لاستخدمنا علامة المساواة ( = ) مباشرةً ،فمثلاً لو كنا نريد استرجاع سجلات الموظفين الذين تبدأ أسماؤهم بحرف الباء فقط لن نستطيع حصر جميع الأسماء التي تبدأ بحرف الباء لذلك نستخدم LIKE ، أو لو كنا نريد استرجاع سجلات الموظفين الذين يسكنون في مدينة الرياض مثلاً ، من المستحيل أن نحفظ عناوينهم كاملة ، ولكن نستطيع البحث عن سجلاتهم عن طريق استخدام كلمة " الرياض " في الشرط LIKE ، نستخدم مع LIKE علامة النسبة المئوية (%) في مكان الخانات التي لا نعرفها " المفقودة " في المعيار .
أمثلة:
1. للبحث عن سجلات الموظفين الذين تبدأ أسماؤهم بحرف الباء في جدول الموظفين نستخدم الأمر التالي :
SELECT * FROM EMPLOYEE
WHERE FNAME LIKE 'ب%';
/* وضعنا (%) بعد حرف الباء أي في مكان الخانات المفقودة */
والنتيجة هي :
2. للبحث عن سجلات الموظفين الذين ينتهي اسمهم الأول بحرف الدال ، نستخدم الأمر التالي :
SELECT * FROM EMPLOYEE
WHERE FNAME LIKE '%د';
/* وضعنا (%) قبل حرف الدال ، أي في مكان الخانات المفقودة */
والنتيجة هي :
3. للبحث عن سجلات الموظفين الذين يسكنون في مدينة الرياض ، نستخدم الأمر التالي :
SELECT * FROM EMPLOYEE
WHERE ADDRESS LIKE '%RYADE%'; /*استخدمنا (%) مرتين في البداية والنهاية لأن العنوان في جدول الموظفين يبدأ برقم المنزل، ثم المدينة ( الرياض )، ثم الدولة*/
والنتيجة هي :
4. للبحث عن الموظفين الذين ولدوا في الثمانينات ، نستخدم الأمر التالي:
SELECT * FROM EMPLOYEE
WHERE BDATE Like '--8-------'; /* استخدمنا (-) مكان الخانات المفقودة لأننا نعلم أن حقل تاريخ الميلاد من نوع DATE
وأن هذا النوع من البيانات يحجز له عشر خانات ،راجع انواع البيانات في الدرس الثاني */
والنتيجة ستكون :
ملاحظة هامة :
في برنامج الآكسس استخدم علامة النجمة * بدلاً من علامة النسبة المئوية % في الشرط LIKE .
هذا كل شئ بالنسبة للشرط ، أما عندما يكون لدينا أكثر من شرط : في هذه الحالة فإننا نشملها جميعها في WHERE عن طريق وضع الروابط المنطقية بينها مثل : AND, OR كالتالي :
عند استخدام AND بين الشروط :
النتيجة تكون عبارة عن جميع السجلات التي تحققت فيها جميع الشروط ، أي أن الشروط التي وضعنا بينها AND لا بد أن تكون جميعها محققة True كي يظهر السجل في النتيجة ، مثال :
لكي نطلب سجل الموظف المسمى بـ :"محمد علي" نكتب الأمر التالي:
SELECT * FROM EMPLOYEE
WHERE FNAME = 'محمد' AND LNAME = 'علي';
فإن النتيجة التي ستظهر لنا تحتوي فقط على سجلات الموظفين الذين اسمهم " محمد علي "، ولن تظهر سجلات الموظفين الآخرين الذين اسمهم " محمد فلان " أو " فلان علي " ، كالتالي :
عند استخدام OR بين الشروط :
النتيجة ستحوي سجلات الموظفين الذين تحققت فيهم أحد الشروط أو جميعها ، يكفي فقط في أي سجل أن يكون شرط واحد محقق كي يظهر السجل في النتيجة ، مثال :
لكي نطلب سجلات الموظفين الذين اسمهم الأول " محمد " أو اسمهم الأخير " علي " نكتب الأمر التالي :
SELECT * FROM EMPLOYEE
WHERE FNAME = 'محمد' OR LNAME = 'علي';
والنتيجة ستحوي سجلات الموظفين الذين اسمهم الأول " محمد " أو اسمهم الأخير " علي " أو اسمهم كاملاً : " محمد علي " ، ستشملهم النتيجة جميعاً إن شاء الله كالتالي :
يمكنك كذلك أن تستخدم AND + OR بين الشروط باختلاف اشكالها لاستعلام واحد ، كن حذراً واستخدم الأقواس في ذلك ، مثال :
SELECT * FROM EMPLOYEE
WHERE ( FNAME = 'محمد' OR LNAME = 'علي') AND NUMPER BETWEEN 30 AND 50;
والنتيجة ستكون :
بهذا نكون انتيهنا من الشروط بجميع أجزاءها واختلاف ألوانها وصيغها ،
تعلمنا في الجزء الثاني من الدرس الثالث :
استخدام BETWEEN ... AND في الشرط .
استخدام LIKE في الشرط .
الجمع بين الشروط باستخدام AND .
الجمع بين الشروط باستخدام OR .
الجمع بين الشروط باستخدام AND + OR واستخدام الأقواس في ذلك .
وهكذا يكون الدرس الثالث بجزأيه قد انتهي بفضل من الله ..
ولتلخيص لما درسناه اليوم ، احتفظ بالصورة التالية والتي توضح ترتيب الأوامر عند استخدامها مع SELECT ، جميع الأوامر المكتوبة باللون الأحمر اختيارية ويتم اختيار أحد الأوامر من بين الاقواس لاستخدامه :
واجب الجزء الثاني :
أكتب أمر SQL لعرض سجلات الموظفين الذين يشتغلون في القسم رقم "5" و الذين يسكنون في مدينة مكة المكرمة .
وفق الله الجميع لما يحب ويرضى
|
|
خدمات المحتوى
|
تقييم
|
|
|
Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.