بتـــــاريخ : 9/19/2008 12:05:33 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1021 0


    الدرس الخامس

    الناقل : mahmoud | العمر :34 | الكاتب الأصلى : أسامة البسومي | المصدر : www.arabopn.com

    كلمات مفتاحية  :
    برامج SQL PLUS

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

    سوف نستعرض في هذا الدرس طرق التعامل مع الفانكشن التي تلزمنا في جملة ال 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 tables
    WHERE 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;
    رمز:
    مثال على COUNT
    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;
    رمز:
    مثال على MAX
    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- بين بمثال كيف يمكن ان نجمع بيانات غير مكررة باستخدام sum
    2-بين عدد الادارات واسم كل ادارة وترتيبها بشكل تصاعدي
    3-بين عدد واسم اصغر ادارة
    4-بين ما هو الفرق في استخدام between و not between
    5-بين عدد الادارات واسم كل ادارة بشرط ان يكون العدد اكبر من 5

    انتهت الاسئلة


    رمز:
    انتهى الدرس الخامس
    كلمات مفتاحية  :
    برامج SQL PLUS

    تعليقات الزوار ()