استخدام معامل المساواة والمعاملات
الرياضية .
تأخذ صيغة استخدام المساواة كشرط في
عملية الإستعلام الصيغة التالية :
رمز برمجي:Select * From Tb_Main Where Field = Value;ويمكننا استخدام > أو < أو
=> أو =< أو <> وطبعاً = .
وأخيراً معاملين جدد سنشرحهم بإذن الله لاحقاً وهما Like و
Between .
فمثلاً للاستعلام عن الأصدقاء الذي
تساوي أعمارهم 18 سنة :
رمز برمجي:SELECT * FROM tb_Main WHERE age = 18;ولعرض أسماء من هم أصغر من 50 سنة :
رمز برمجي:SELECT FName,LName FROM tb_Main where age < 50;وسنضع Value بين علامتي تنصيص مفردة في حالة كانت نصوصاً وذلك
بالشكل التالي - للبحث عن الأشخاص والذين لهم الإسم ( أحمد ) :
رمز برمجي:SELECT * FROM tb_Main WHERE Fname = 'ahmed';كما سنضع علامتي # عند البحث عن
تواريخ ، ولا توجد أمثلة لتاريخ في قاعدة البيانات ، لكنها تأخذ صيغة شبيهه
بالتالي :
رمز برمجي:Select * Form Table1 Where Date > #12/03/04#;والآن لندمج بعض ما تعملناه في
جملة واحدة :
لاستخراج الإسم الأول والأخير من الجدول بترتيب تنازلياً
ومدمجة سوياً تحت اسم Name والتي تحقق
شرط أن العمر أكبر من 17 :
رمز برمجي:SELECT Fname & " " & Lname AS MyName FROM tb_Main WHERE age > 17 ORDER BY FNAME, LName DESC; والآن :
ماذا لو أردنا البحث بتحقيق مجموعة شروط أو أحدها أو تحقيق شرط مع انتفاء
آخر ؟
من أجل هذا الغرض نستخدم المعاملات المنطقية البسيطة
.
لدينا نوعين من المعاملات المنطقية
البسيطة الأكثر استخداماً :
And : تعطي قيمة صحيحة True في حالة كان
الطرفين صحيحاً والباقي
false .
Or : تعطي قيمة صحيحة True في حالة كان
أحد الطرفين صحيحاً وإلا فإنه يعطي
false .
والآن إلى مثال سريع ، سنبحث عن الأشخاص
الذين يكبر عمرهم عن 17 بشرط ألا يكونوا متزوجين :
رمز برمجي:Select Fname from tb_main where age > 17 and marry = false;لنفترض أيضاً أننا نريد معرفة
الأشخاص الذين تزيد أعمارهم عن 17 سنة وليس لديهم بريد الكتروني :
** قبل أن تجرب
المثال قم بتشغيل قاعدة البيانات وقم بحذف البريد الإلكتروني لبعض الأشخاص ،
واكتب للبعض كلمة No Mail وللآخرين No .
الآن انظر الأمر
التالي :
رمز برمجي:SELECT * FROM Tb_Main WHERE age>17 And (Email='No' or Email='No Mail');سنفصل الآن هذه الجملة :
* الشرط الأول : Age > 17 : العمر
أكبر من 17
.
* الشرط الثاني : Email = 'No' : البريد
الإلكتروني يحتوي على كلمة
No .
* الشرط الثالث : Email = 'No Mail' : البريد الإلكتروني يحتوي على كلمة
No Mail .
واستخدمنا نوعين من المعاملات المنطقية And و Or .
قبل النهاية كن
حذراً عند استخدام And مع Or في جملة واحدة ، وذلك عن طريق ترتيب الأقواس بطريقة صحيحة .
استخدام المعامل Like .
نستخدم المعامل Like للبحث عن الكلمات المشابهه لتعبير معين ...
ونستخدم للمعامل Like الصيغة
التالية :
رمز برمجي:Select * From Table Where Field Like '*Name*';نستخدم * للدلالة على وجود أحرف
ما ... وقد نستخدمها في البداية ، أو النهاية ، أو كليهما . وسيتضح الأمر
في الأمثلة :
لعرض الأشخاص الذين قد تحتوي أسماءهم الأولى على hm ... لذا سنستخدم جملة استعلام بهذا
الشكل
:
رمز برمجي:SELECT * FROM Tb_Main WHERE FName like '*hm*';أما لو أردنا البحث عن
الأشخاص الذين تبدأ أسماءهم بحرف A لذا
لن نضع * قبل كلمة البحث :
رمز برمجي:SELECT * FROM Tb_Main WHERE FName like 'A*';ولو أردنا البحث عن الأشخاص الذين
ينتهي اسمهم بحرف معين سنضع * في البداية دون النهاية .
***
في MS SQL Server نستخدم % بدلاً من * .
مما سبق نستنتج أن * تعني أي عدد من
الحروف ، لكن ماذا لو أردنا تحديد عدد الحروف ؟
في هذه الحالو نستخدم "؟" والتي ذكرناها في درس البحث في
البداية
.
إذن : ماذا لو أردنا أن نبحث عن الأشخاص
الذين تبدأ أسماءهم بحرف A بشرط أن
يكون عدد حروفهم 3 فقط
.
رمز برمجي:SELECT * FROM Tb_Main WHERE FName like 'A??';والآن إلى مثال واقعي
نسبياً . جرب تعديل حقل العنوان Address للأشخاص
بحيث يحتوي على أكثر من معلومة اضافة للمدينة .
في هذه الحالة نستطيع استخراج الأشخاص الذين يسكنون مدينة
واحدة عن طريق الشرط Like . هل تعرف
كيف ؟؟؟
استخدام المعامل Between .
نستخدم هذا المعامل للبحث ضمن نطاق معين
، وأشهر استعمال لهذا المعامل هو استخدامه في البحث ضمن التواريخ .
يأخذ البحث باستخدام between الصيغة
التالية
:
رمز برمجي:SELECT colum FROM table WHERE field BETWEEN v1 AND v2;فمثلاً لاستخراج الأشخاص
الذين تترواح أعمارهم بين 20 و 60 :
رمز برمجي:SELECT * رمز برمجي:FROM tb_main
WHERE age between 20 and 60;
ويمكن استخدام نفس الطريقة مع الأسماء ،
والتواريخ بطبيعة الحال.
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .