شـبـكــة عـمّـــار
إخبارية - ترفيهية
- تعليمية



جديد الصور
جديد الأخبار
جديد المقالات


جديد الصور

جديد البطاقات

جديد الصوتيات

المتواجدون الآن


تغذيات 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" و الذين يسكنون في مدينة مكة المكرمة .

وفق الله الجميع لما يحب ويرضى


تعليقات 0 | إهداء 0 | زيارات 598


خدمات المحتوى
  • مواقع النشر :
  • أضف محتوى في Digg
  • أضف محتوى في del.icio.us
  • أضف محتوى في StumbleUpon
  • أضف محتوى في Google


تقييم
4.71/10 (10 صوت)


Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.