العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات Microsoft Office > روضة دورات Microsoft Access > دورة Microsoft Access 2003 من منتدى قريتي

دورة Microsoft Access 2003 من منتدى قريتي مقدم الدورة : أبو ربيع . حالة الدورة : انتهت . عدد الدروس : 12 درس

إضافة رد

  #1  
قديم 03-30-2010, 10:26 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الثاني عشر والأخير الجزء الرابع - لغة تقنية الاستعلامات - الدوال في الاستعلامات - دورة Microsoft Access 2003


بسم الله الرحمن الرحيم


السلام عليكم ورحمة الله وبركاته


الدوال في الاستعلامات .

تستخدم العديد من الدوال ضمن طيات جمل الاستعلام ، وهي شائعة الاستخدام ، ومريحة ، وتعيد قيمة وحيدة - لا تعيد جدول - سنتعرف على بعض الدوال مع بعض الأمثلة خلال هذا الدرس .

ولننظر نظرة سريعة إلى الصيغة العامة لاستخدام الدوال والتي تأخذ الشكل التالي :

كود PHP:
     SELECT func(columFROM table WHERE condition


الدالة :AVG


تعطينا هذه الدالة متوسط حقل ما ، مثال لحساب متوسط الأعمار في قاعدة البيانات تبعنا نكتب أمراً كالتالي :

كود PHP:
     Select  AVG(Agefrom Rabia


ولك ان تتخيل ماذا سنفعل لو لم نستخدم هذه الدالة ، كنا سنبحث عن جميع السجلات حيث نجمع ارقام كل سجل ثم ننتقل إلى التالي ثم......... ولكن هكذا - برمجياً - .

أيضاً يمكننا استخدام الدالة بشرط ... فمثلاً لحساب متوسط أعمار الأشخاص الذين لا تزيد أعمارهم عن 60 :

كود PHP:
     SELECT AVG(AgeFROM Rabia where age <  60


نفذ الاستعلام
ولو لاحظت لوجدت أن ناتج الدالة يظهر في حقل تحت اسم Expr100أو ما شابه ... لذا قم - إذا كنت تريد - بإعادة تسمية حقل الناتج عن طريق Asكما تعلمنا ذلك سابقاً وبالشكل التالي :

كود PHP:
     SELECT AVG(Age) as AVGAGE FROM Rabia WHERE age  60


لاحظ أيضاً أن الدالة سوف تتجاهل السجلات الفارغة..


الدوال :
Min : تعطيك الأصغر من بين القيم .
Max :تعطيك الأكبر من بين القيم .
Sum : تعطيك مجموع جميع القيم .

مثال على أكبر عمر في قاعدة البيانات :

كود PHP:
     SELECT max(Age) AS mxAGE FROM  Rabia


غير مكان
max الدالتين المتبقيتين.. لترى النتائج..
ولا تنسى أن بإمكاننا وضع شرط لعملية الإستعلام .


الدالة : Count

وتعيد هذه الدالة عدد السجلات ولها صورتان تعمل مع أكسيس ... أما الصورة الثالثة فهي لا تعمل على الاكسيس :

الصيغة الأولى : Count(colum) .. وتعيد عدد السجلات التي لم يكن هذا الحقل فارغاً فيها .
الصيغة الثانية : Count(*) .. وتعيد عدد السجلات دون النظر إلى إذا ما كانت فارغة أم لا .
أما الصيغة الثالثة : COUNT(DISTINCT Colum( حيث تقوم بعد السجلات مع تجاهل المكرر منها .

ولنرى مثالاً على الصيغة الثانية :

كود PHP:
     Select count(*) From Rabia


لا تنسى أن بإمكانك وضع شرط لعملية العد .

كانت هذه بعض الدوال البسيطة والاكثر شهرة في TSqlوالآن ، ماذا لو كانت لدينا علاقات ونرغب في العمل عليها ؟

في مثل هذه الحالة ... نريد الحصول على معلومات البطاقة الشخصية الخاصة باسم ما وذلك من Tb_R1 - لاحظ أنه لا يوجد حقل للاسم في الجدول الثاني - .

كود PHP:
     SELECT Rabia.FnameRabia.lnameTb_R1.passporttb_r1.bclass,  tb_r1.from
FROM Rabia
tb_r1
WHERE Rabia
.Number =  tb_r1.Number



دعنا الآن نشرح الكود ونلاحظ الفروق بين هذه الطريقة والطريقة السابقة :

أولاً :نقوم بكتابة اسم الجدول.اسم الحقل وذلك مهم لأننا نتعامل مع أكثر من جدول .

ثانياً :نقوم بكتابة اكثر من جدول بعد عبارة From لأننا نريد النواتج من أكثر من جدول .

ثالثاً : السطر الأخير من جملة الاستعلام هو لكي يعرض المعلومات التي تتشابه أرقامها في الجدولين سوية .

دعنا الآن نجرب مثالاً آخر ... وذلك بالاستعلام عن كافة المعلومات التي تتعلق بالأصدقاء الذين تزيد أعمارهم عن 50 سنة .

كود PHP:
     SELECT Rabia.FnameRabia.lnameTb_R1.passport,  tb_r1.bclasstb_r1.from
FROM Rabia
tb_r1
WHERE Rabia
.Number =  tb_r1.Number and Rabia.age >50


والآن نريد تطبيق امثلة جديدة ، ولكي نبدأ في تطبيق أمثلة هذا الدرس لا بد أن يكون بعض الأصدقاء لديهم سجلات في الجدول الثاني والبعض الآخر لا .

مازال حديثنا عن العلاقات وما يتعلق بها مستمراً..


الدالة : Join

لهذه الدالة ثلاثة أنواع.. وسنتحدث عن كل نوع بشيء من التفصيل.. إليك تلك الأنواع :


النوع الأول : Inner Join

هي الطريقة العادية والتي تحدثنا عنها في الدرس السابق تعطينا النواتج في حال كان شرط العلاقة متحققاً في كلا الجدولين .
بمعنى : جرب أن تحذف بعض سجلات الأصدقاء من الجدول الثاني ، وستجد أن معلوماتهم - حتى الأساسية - لن تظهر .
هذا النوع من الربط يطلق عليه Inner Joinوهو الافتراضي ... ويمكننا كتابته بالشكل التالي للتفريق بين الأنواع المختلفة :

كود PHP:
     SELECT Rabia.FnameRabia.lnameTb_R1.passporttb_r1.bclass,  tb_r1.from
FROM Rabia inner join tb_r1
on  Rabia
.Number=tb_r1.Number


لاحظ أننا استبدلنا Where بـ onكما وضعنا inner join بين اسمي الجدولين .


النوع الثاني : Left Join

في هذا النوع يعرض جميع بيانات الجدول الأول ( على اليسار ) ومن ثم يعرض البيانات المقابلة في الجدول الثاني .

لاحظ في هذا النوع أمرين :


* إذا كانت هناك سجلات ( على اليسار ) لا تقابلها سجلات على اليمين فإن اليسار يعرض ويعرض اليمين فارغاً .

* وإذا كانت هناك سجلات ( على اليمين ) ليس لها مقابل على اليسار فإنها لا تُعرض أبداً .


مثال هذه النوعية :

كود PHP:
     SELECT Rabia.FnameRabia.lnameTb_R1.passport,  tb_r1.bclasstb_r1.from
FROM Rabia Left JOIN tb_r1 ON  Rabia
.Number=tb_r1.Number



النوع الثالث : Right Join

هو النوع العكسي تماماً للعملية السابقة ، وبإختصار هذا مثال عليه :

كود PHP:
     SELECT  Rabia.FnameRabia.lnameTb_R1.passporttb_r1.bclasstb_r1.from
FROM Rabia  Right JOIN tb_r1 ON Rabia
.Number=tb_r1.Number




*** في النهاية أود أن انبه إلى أنه ما زال هناك الكثير في TSQL ولكن كانت هذه مقدمة لا بأس بها عنها ***





تم بحمد الله.. وانتهى الدرس وبه تنتهي دورة الآكسيس 2003..

ولن نلتقي بالدرس القادم ^_^ ..


تحياتي : أبو ربيع

-------------------------------

المصدر


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
  #2  
قديم 05-22-2010, 03:19 PM
akramnasr akramnasr غير متواجد حالياً

عضو جديد

 
تاريخ التسجيل: May 2010
المشاركات: 2
افتراضي

شكرررررررررررررررررررررررررررررررررررررررررررررررر رررررررررررررررررررررررررررررا


رد مع اقتباس
  #3  
قديم 08-17-2011, 02:03 PM
الشمرول الشمرول غير متواجد حالياً

عضو جديد

 
تاريخ التسجيل: Aug 2011
المشاركات: 1
افتراضي

مشكوووور يا أخي *_^


رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الحادي عشر : الجزء الثالث - لغة تقنية الاستعلامات - تنفيذ العمليات - دورة Microsoft Access 2003 khaledbelal دورة Microsoft Access 2003 من منتدى قريتي 0 03-30-2010 10:21 PM
الدرس العاشر : الجزء الثاني - لغة تقنية الاستعلامات - استخدام المعاملات - دورة Microsoft Access 2003 khaledbelal دورة Microsoft Access 2003 من منتدى قريتي 0 03-30-2010 10:14 PM
الدرس التاسع : الجزء الأول - لغة تقنية الاستعلامات - نظرة عامة وتركيب الكود - دورة Microsoft Access 2003 khaledbelal دورة Microsoft Access 2003 من منتدى قريتي 0 03-30-2010 10:10 PM
الدرس السادس : العلاقات – الجزء الثاني : عملي - دورة Microsoft Access 2003 khaledbelal دورة Microsoft Access 2003 من منتدى قريتي 0 03-30-2010 10:05 PM
الدرس الرابع : درس إنشاء النماذج - دورة Microsoft Access 2003 khaledbelal دورة Microsoft Access 2003 من منتدى قريتي 0 03-30-2010 10:00 PM

استضافة الحياة

الساعة الآن 09:27 AM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz