أسامة موسى بتاريخ: 15 أبريل 2006 تقديم بلاغ مشاركة بتاريخ: 15 أبريل 2006 بسم الله الرحمن الرحيمالدرس الخامسسوف نستعرض في هذا الدرس طرق التعامل مع الفانكشن التي تلزمنا في جملة ال Selectان شاء الله مع ملاحظة ان كل درس من الدروس السابقة جزء لا يتجزأ عن الآخر لأنه في النهايه سوف نخرج بمشروع مع تقاريرة باذن الله فالموضوع ليس شرح فالشروحات كثيرة والاعضاء بارك الله فيهم لايقصرون من هذه الناحية الهدف هو وضعك على الطريق الصحيح لتبدأ بتطوير نفسك* GROUP BY وهو مايقصد به بالمجموعات ويستخدم الGROUP BY لتمثيل او تقسيم المعلومات على شكل مجموعات سواء مجموعة واحدة او عدة مجموعات SELECT column1, column2, ... column_n, aggregate_function (expression) FROM tables WHERE predicates GROUP BY column1, column2, ... column_n; لاحظ معي كيف يمكن استخدامته وسوف تتوضح فكرته عندا استخدامه مع معادلات اخرى فالهدف هو مثلا ايجاد عدد الاقسام في كل ادارة .* Countوهو عبارة عن عدد ويستخدم لارجاع عدد الحقول في الجدول ويمكن استخدامه بالشكل التالي SELECT COUNT(expression) FROM tables WHERE predicates; طبعا ال COUNT يرجع اجمالي لذلك نستطيع ان نضع اسم حقل ليرجع لنا عدد بياناته مثلا او نستطيع ان نرجع عدد بيانات جدول وذلك باستخدام النجمة * كما يلي COUNT(*) لذلك يجب توضيح نقطة انه لو طلب منا استرجاع بيانات عدد الادرات مع اسم الادراة لذلك يجب ان نستخدم معها GROUP BY SELECT COUNT(DPT_NO) as "Number of Dept",DPT_NAME FROM DEPARTMENTS GROUP BY DPT_NAME لا نستخدم مع COUNT ال GROUP BY في حالة اذا كان نسترجع فقط عدد شيء معين*SUM وهو عمل ايجاد مجموعة عدد من الارقام SELECT SUM(expression ) FROM tables WHERE predicates; يمكن ان يستخدم ال SUM مع DISTINCTمثال SELECT SUM(DISTINCT salary) as "Total Salary" FROM employees WHERE salary > 25000; هنا يتم جمع البيانات غير المكررة ويمكن عمل عمليات اثناء الجمع كطرح او ضرب او قسمة نتيجة على رقم معين من كل حقل كما في المثال التالي SELECT SUM(sales*0.10) as "Commission" FROM order_details; ويستخدم الSUM مع GROUP BYمثال SELECT department, SUM(sales) as "Total sales" FROM order_details GROUP BY department; *MAX وهو ارجاع اكبر قيمة بين مجموعة من البيانات SELECT MAX(expression ) FROM tables WHERE predicates; *MIN وهو عكس ال MAX حيث يرجع اقل قيمة بين مجموعة من البياناتSELECT MIN(expression )FROM tablesWHERE predicates;مثال SELECT MIN(salary) as "Lowest salary" FROM employees; لاحظوا كيف انه وضعنا ال DPT_NAME لأنه عبارة عن رمز فردي اما COUNT(DPT_NO) عبارة عن مجموعة لذلك يستخدم معها ال GROUP BYوكذلك الحال بالنسبة ال MAX,MIN,SUM* HAVING ويستخدم لفلترت البانات الناتجه ععن GROUP BY وهو يستخدم معها حيث تستطيع وضع شرط معين من خلالها وهو يستخدم فقط اعمدة ال GROUP BY او اي شيء ينتمي الى مجموعةالقاعده هي SELECT column1, column2, ... column_n, aggregate_function (expression) FROM tables WHERE predicates GROUP BY column1, column2, ... column_n HAVING condition1 ... condition_n; ويستخدم ايضا مع SUM,MAX,MIN,COUNTوهذه امثلة على كل واحدمثال على SUM SELECT department, SUM(sales) as "Total sales" FROM order_details GROUP BY department HAVING SUM(sales) > 1000; [color=red]مثال على COUNT[/color] SELECT department, COUNT(*) as "Number of employees" FROM employees WHERE salary > 25000 GROUP BY department HAVING COUNT(*) > 10; مثال على MIN SELECT department, MIN(salary) as "Lowest salary" FROM employees GROUP BY department HAVING MIN(salary) = 35000; [color=red]مثال على MAX[/color] SELECT department, MAX(salary) as "Highest salary" FROM employees GROUP BY department HAVING MAX(salary) < 50000; نأتي الى استخدام BETWEENالمقصود بها من الى او بينوتستغل لوضع مقارنة توضع في جملة الشرط SELECT columns FROM tables WHERE column1 between value1 and value2; مثال SELECT * FROM suppliers WHERE supplier_id between 5000 and 5500; ويمكن استخدام ال NOT BETWEEN والمقصود بها ليس بين من الى وهو عبارة عن احضار البيانات التي لا تنتمي الى جملة الشرط باستغلال ال NOT BETWEEN SELECT * FROM suppliers WHERE supplier_id not between 5000 and 5500; الأسئلة1- بين بمثال كيف يمكن ان نجمع بيانات غير مكررة باستخدام sum2-بين عدد الادارات واسم كل ادارة وترتيبها بشكل تصاعدي3-بين عدد واسم اصغر ادارة4-بين ما هو الفرق في استخدام between و not between5-بين عدد الادارات واسم كل ادارة بشرط ان يكون العدد اكبر من 5انتهت الاسئلة انتهى الدرس الخامس الدرس الرابع ..... القائمة الرئيسية.... الدرس السادس 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mdsalah بتاريخ: 2 يونيو 2006 تقديم بلاغ مشاركة بتاريخ: 2 يونيو 2006 مشكور اخى الفاضل واتمنى منك مزيد العطاء وجازاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
osama80 بتاريخ: 29 نوفمبر 2006 تقديم بلاغ مشاركة بتاريخ: 29 نوفمبر 2006 بارك الله فيك اخي الفاضل و اتمنى من الله ان يتم عليكم بثمرة هذا العمل و تحمل أمانة العلم. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
wlahmad بتاريخ: 12 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 12 يناير 2007 نور الله دربكوسهل امركوبلغك مرادك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 31 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 يعطيك العافيه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
gendia_9i بتاريخ: 30 نوفمبر 2008 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2008 very very good اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.