منتدي
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدي

منتدي تعليمي، ترفيهي، اجتماعي
 
الرئيسيةالرئيسية  البوابةالبوابة  الجديدالجديد  أحدث الصورأحدث الصور  التسجيلالتسجيل  دخولدخول  

 

 الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
admin
المدير العام

المدير العام
admin


عدد المساهمات : 1578
الجنس : ذكر
تاريخ التسجيل : 27/06/2008

الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع Empty
مُساهمةموضوع: الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع   الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع Icon_minitimeالثلاثاء 22 يونيو 2010, 7:51 pm



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


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

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



اقتباس :
SELECT func(colum) FROM table WHERE condition;


الدالة
AVG :

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


اقتباس :
Select AVG(Age) from tb_main;

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


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


اقتباس :
SELECT AVG(Age) FROM tb_main where age < 25;

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


اقتباس :
SELECT AVG(Age) as AVGAGE FROM tb_main WHERE age < 25;



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

الدوال
Sum,Max,Min :

تعطي هذه الدوال المجموع - الأكبر - الأصغر على التوالي ، وهذا مثال على أكبر عمر في قاعدة البيانات :
اقتباس :

SELECT max(Age) AS mxAGE FROM tb_main;


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


الدالة
Count :

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


أما الصيغة الثالثة : COUNT(DISTINCT Colum( حيث تقوم بعد السجلات مع تجاهل المكرر منها .

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


اقتباس :
Select count(*) From Tb_Main;



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



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

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



اقتباس :
SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from
FROM tb_main, tb_r1
WHERE tb_main.Number = tb_r1.Number;

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



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



اقتباس :
SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from
FROM tb_main, tb_r1
WHERE tb_main.Number = tb_r1.Number and tb_main.age >25;



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

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

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


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



اقتباس :
SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from
FROM tb_main inner join tb_r1
on tb_main.Number=tb_r1.Number;



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


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

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

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

اقتباس :

SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from
FROM tb_main Left JOIN tb_r1 ON tb_main.Number=tb_r1.Number;


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

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


اقتباس :

SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from
FROM tb_main Right JOIN tb_r1 ON tb_main.Number=tb_r1.Number;



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

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


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://telbana.alafdal.net
نور الدين
نائب المدير

نائب المدير
نور الدين


عدد المساهمات : 5431
الجنس : ذكر
تاريخ التسجيل : 26/04/2010

الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع Empty
مُساهمةموضوع: رد: الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع   الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع Icon_minitimeالإثنين 12 يوليو 2010, 1:18 am

مجهود رائع


ننتظر جديدك

******

الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع 2r454s2


******
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://telbana.alafdal.net
 
الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الدرس التاسع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثالث
» الدرس الثامن : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثاني
» الدرس السابع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الأول
» الدرس الرابع : العلاقات Relationships .
» 17-قواعد الفيجوال - الجزء الرابع

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدي  :: المنتديات التقنية :: قسم لغات البرمجة :: دروس تعليم أكسيس للأستاذ أحمد جمال-
انتقل الى: