العودة   منتدى رياض الجنة - 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

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

الساعة الآن 01:18 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