الدرس الثاني عشر والأخير الجزء الرابع - لغة تقنية الاستعلامات - الدوال في الاستعلامات - دورة Microsoft Access 2003
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته الدوال في الاستعلامات . تستخدم العديد من الدوال ضمن طيات جمل الاستعلام ، وهي شائعة الاستخدام ، ومريحة ، وتعيد قيمة وحيدة - لا تعيد جدول - سنتعرف على بعض الدوال مع بعض الأمثلة خلال هذا الدرس . ولننظر نظرة سريعة إلى الصيغة العامة لاستخدام الدوال والتي تأخذ الشكل التالي : كود PHP:
الدالة :AVG تعطينا هذه الدالة متوسط حقل ما ، مثال لحساب متوسط الأعمار في قاعدة البيانات تبعنا نكتب أمراً كالتالي : كود PHP:
ولك ان تتخيل ماذا سنفعل لو لم نستخدم هذه الدالة ، كنا سنبحث عن جميع السجلات حيث نجمع ارقام كل سجل ثم ننتقل إلى التالي ثم......... ولكن هكذا - برمجياً - . أيضاً يمكننا استخدام الدالة بشرط ... فمثلاً لحساب متوسط أعمار الأشخاص الذين لا تزيد أعمارهم عن 60 : كود PHP:
نفذ الاستعلام ولو لاحظت لوجدت أن ناتج الدالة يظهر في حقل تحت اسم Expr100أو ما شابه ... لذا قم - إذا كنت تريد - بإعادة تسمية حقل الناتج عن طريق Asكما تعلمنا ذلك سابقاً وبالشكل التالي : كود PHP:
لاحظ أيضاً أن الدالة سوف تتجاهل السجلات الفارغة.. الدوال : Min : تعطيك الأصغر من بين القيم . Max :تعطيك الأكبر من بين القيم . Sum : تعطيك مجموع جميع القيم . مثال على أكبر عمر في قاعدة البيانات : كود PHP:
غير مكان max الدالتين المتبقيتين.. لترى النتائج.. ولا تنسى أن بإمكاننا وضع شرط لعملية الإستعلام . الدالة : Count وتعيد هذه الدالة عدد السجلات ولها صورتان تعمل مع أكسيس ... أما الصورة الثالثة فهي لا تعمل على الاكسيس : الصيغة الأولى : Count(colum) .. وتعيد عدد السجلات التي لم يكن هذا الحقل فارغاً فيها . الصيغة الثانية : Count(*) .. وتعيد عدد السجلات دون النظر إلى إذا ما كانت فارغة أم لا . أما الصيغة الثالثة : COUNT(DISTINCT Colum( حيث تقوم بعد السجلات مع تجاهل المكرر منها . ولنرى مثالاً على الصيغة الثانية : كود PHP:
لا تنسى أن بإمكانك وضع شرط لعملية العد . كانت هذه بعض الدوال البسيطة والاكثر شهرة في TSqlوالآن ، ماذا لو كانت لدينا علاقات ونرغب في العمل عليها ؟ في مثل هذه الحالة ... نريد الحصول على معلومات البطاقة الشخصية الخاصة باسم ما وذلك من Tb_R1 - لاحظ أنه لا يوجد حقل للاسم في الجدول الثاني - . كود PHP:
دعنا الآن نشرح الكود ونلاحظ الفروق بين هذه الطريقة والطريقة السابقة : أولاً :نقوم بكتابة اسم الجدول.اسم الحقل وذلك مهم لأننا نتعامل مع أكثر من جدول . ثانياً :نقوم بكتابة اكثر من جدول بعد عبارة From لأننا نريد النواتج من أكثر من جدول . ثالثاً : السطر الأخير من جملة الاستعلام هو لكي يعرض المعلومات التي تتشابه أرقامها في الجدولين سوية . دعنا الآن نجرب مثالاً آخر ... وذلك بالاستعلام عن كافة المعلومات التي تتعلق بالأصدقاء الذين تزيد أعمارهم عن 50 سنة . كود PHP:
والآن نريد تطبيق امثلة جديدة ، ولكي نبدأ في تطبيق أمثلة هذا الدرس لا بد أن يكون بعض الأصدقاء لديهم سجلات في الجدول الثاني والبعض الآخر لا . مازال حديثنا عن العلاقات وما يتعلق بها مستمراً.. الدالة : Join لهذه الدالة ثلاثة أنواع.. وسنتحدث عن كل نوع بشيء من التفصيل.. إليك تلك الأنواع : النوع الأول : Inner Join هي الطريقة العادية والتي تحدثنا عنها في الدرس السابق تعطينا النواتج في حال كان شرط العلاقة متحققاً في كلا الجدولين . بمعنى : جرب أن تحذف بعض سجلات الأصدقاء من الجدول الثاني ، وستجد أن معلوماتهم - حتى الأساسية - لن تظهر . هذا النوع من الربط يطلق عليه Inner Joinوهو الافتراضي ... ويمكننا كتابته بالشكل التالي للتفريق بين الأنواع المختلفة : كود PHP:
لاحظ أننا استبدلنا Where بـ onكما وضعنا inner join بين اسمي الجدولين . النوع الثاني : Left Join في هذا النوع يعرض جميع بيانات الجدول الأول ( على اليسار ) ومن ثم يعرض البيانات المقابلة في الجدول الثاني . لاحظ في هذا النوع أمرين : * إذا كانت هناك سجلات ( على اليسار ) لا تقابلها سجلات على اليمين فإن اليسار يعرض ويعرض اليمين فارغاً . * وإذا كانت هناك سجلات ( على اليمين ) ليس لها مقابل على اليسار فإنها لا تُعرض أبداً . مثال هذه النوعية : كود PHP:
النوع الثالث : Right Join هو النوع العكسي تماماً للعملية السابقة ، وبإختصار هذا مثال عليه : كود PHP:
*** في النهاية أود أن انبه إلى أنه ما زال هناك الكثير في TSQL ولكن كانت هذه مقدمة لا بأس بها عنها *** تم بحمد الله.. وانتهى الدرس وبه تنتهي دورة الآكسيس 2003.. ولن نلتقي بالدرس القادم ^_^ .. تحياتي : أبو ربيع ------------------------------- المصدر |
شكرررررررررررررررررررررررررررررررررررررررررررررررر رررررررررررررررررررررررررررررا
|
مشكوووور يا أخي *_^
|
الساعة الآن 11:48 AM. |
Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By
Almuhajir
النسخة الفضية