منتدى التصميم والاشهار العربي

منتدى التصميم والاشهار العربي

منتدى التصميم والاشهار العربي
 
الرئيسيةشبكة ابداعاليوميةمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول
اهلا وسهلا بكم في منتدى التصميم والاشهار العربي



شاطر | 
 

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

اذهب الى الأسفل 
كاتب الموضوعرسالة
Mr.samer
مؤسس شبكة
مؤسس شبكة
avatar

عدد المساهمات : 311
نقاط النشاط : 479
مستوى النشاط : 1
تاريخ التسجيل : 22/06/2012
الموقع : شبكة ابداع

مُساهمةموضوع: الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع   السبت أغسطس 11, 2012 5:46 am

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



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




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




رمز برمجي:


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 ولكن كانت هذه نبذه عنها...



والله الموفق ...

وشكرا لكم

الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://altsmem.ahlamontada.com
salah xavi
مبدع مشارك
مبدع مشارك
avatar

عدد المساهمات : 76
نقاط النشاط : 76
مستوى النشاط : 2
تاريخ التسجيل : 26/07/2012
العمر : 20

مُساهمةموضوع: رد: الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع   الثلاثاء أغسطس 28, 2012 6:31 pm

شكرا على الموضوع
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
الدرس الأخير : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الرابع
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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