إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    SQL وضع شروط على الحقول التي تم تجميعها

    مفهوم وضع الشروط على الحقول التي تم تجميعها

    في البداية المقصود من هذا الأمر هو وضع شروط على النتيجة التي سنحصل عليها بعد أن قمنا بتجميع الحقول و إجراء إحصاء ما.
    بمعنى أخر, بعد أن تقوم بتجميع قيم الحقول بواسطة الكلمة GROUP BY يمكنك وضع شرط لفلترة النتيجة التي تم تجميعها أيضاً.

    كمثال بسيط عن الحاجة لإعادة الفلترة بعد تجميع القيم, في حال كنت تريد إجراء إحصاء لمعرفة متوسط رواتب موظفي الشركة في كل بلد, و بعد معرفة متوسط الرواتب في كل بلد تريد معرفة أي بلدان تعطي موظفيها متوسط راتب يتجاوز 800 دولار.

    لفلترة النتيجة التي حصلنا عليها بالأساس بعد أن قمنا بتجميع الحقول بواسطة الكلمة GROUP BY نضع الكلمة HAVING و بعدها الشرط الذي سيقوم بفلترة النتيجة أكثر.


    الشكل العام لتجميع الحقول

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

    SELECT column_name(s)
    FROM table_name
    GROUP BY column_name(s)
    HAVING condition;
    	

    إذا كنت ستجمع الحقول و تضع شروط على القيم التي سيتم تجميعها من الأساس, و بعدها تنوي وضع شرط لفلترة النتيجة و في النهاية تريد ترتيب النتيجة النهائية, شكل الإستعلام سيكون كالتالي.

    SELECT column_name(s)
    FROM table_name
    WHERE condition
    GROUP BY column_name(s)
    HAVING condition
    ORDER BY column_name(s);
    	

    • مكان الكلمة table_name نضع إسم الجدول الذي يحتوي على الحقول التي ننوي تجميعها و إجراء إحصاء عليها.
    • بعد الكلمة WHERE يمكننا وضع شروط على القيم التي سيتم تجميعها من الأساس.
    • بعد الكلمة HAVING يمكننا وضع شروط لفلترة النتيجة النهائية التي سيتم إرجاعها.
    • بعد الكلمة GROUP BY نضع إسم كل عمود نريد أن يتم تجميع القيم بناءاً عليه.

    تجهيز قاعدة البيانات التي سنطبق عليها

    قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash و تنشئ فيها جدول إسمه employees يحتوي على بيانات 10 موظفين.

    الإستعلام

    -- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها
    DROP DATABASE IF EXISTS harmash;
    
    -- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها
    CREATE DATABASE harmash;
    
    -- harmash هنا قمنا بتحديد أن أي إستعلام جديد سيتم تنفيذه على قاعدة البيانات
    USE harmash;
    
    -- يتألف من 5 أعمدة employees هنا قمنا بإنشاء جدول جديد إسمه
    -- لأننا قمنا بتحديدها قبل إستدعاء هذا الأمر harmash سيتم إنشاء هذا الجدول بداخل قاعدة البيانات
    CREATE TABLE employees (
        id       INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(50) NOT NULL,
        gender   VARCHAR(20),
        country  VARCHAR(50),
        salary   DECIMAL(7,2)
    );
    
    -- هنا قمنا بإضافة 10 أسطر في الجدول, أي أضفنا معلومات 10 موظفين
    -- لاحظ أننا لم نحدد أسماء الأعمدة التي سنضع فيها البيانات لأننا قمنا بملئ جميع المعلومات
    -- مكان كل حقل لن نقوم بوضع قيمة فيه null بما أننا لم نحدد أسماء الأعمدة التي سنملأها لاحظ أننا مجبورين على وضع كلمة
    -- الموضوعة في بداية كل أمر سيتم إستبدالها بترقيم تلقائي من قبل قاعدة البيانات null و لا تنسى أن الكلمة
    INSERT INTO employees VALUES (null, "rami", "male", "Lebanon", 700);
    INSERT INTO employees VALUES (null, "ahmad", "male", "Syria", 800);
    INSERT INTO employees VALUES (null, "hanan", "female", "KSA", 750);
    INSERT INTO employees VALUES (null, "saly", "female", "Lebanon", 650);
    INSERT INTO employees VALUES (null, "samir", "male", "Egypt", 600);
    INSERT INTO employees VALUES (null, "hamad", "male", "KSA", 700);
    INSERT INTO employees VALUES (null, "abdullah", "male", "KSA", 800);
    INSERT INTO employees VALUES (null, "rashed", "male", "Oman", 900);
    INSERT INTO employees VALUES (null, "majed", "male", "Yaman", 820);
    INSERT INTO employees VALUES (null, "malak", "female", "Morocco", 860);
    		

    بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash و إنشاء الجدول employees بداخلها.
    قم بالنقر على إسم قاعدة البيانات harmash من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.


    البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول employees.

    id user gender country salary
    1 rami male Lebanon 700.00
    2 ahmad male Syria 800.00
    3 hanan female KSA 750.00
    4 saly female Lebanon 650.00
    5 samir male Egypt 600.00
    6 hamad male KSA 700.00
    7 abdullah male KSA 800.00
    8 rashed male Oman 900.00
    9 majed male Yaman 820.00
    10 malak female Morocco 860.00

    أمثلة حول وضع شروط بعد تجميع قيم الأعمدة


    المثال الأول

    الإستعلام التالي يقوم بعرض متوسط الرواتب الذي يتم دفعه للموظفين من كل بلد.

    ما فعلناه لإجراء هذا الإحصاء هو تجميع أسماء البلدان الموجودة في الحقل country بواسطة الكلمة GROUP BY.
    بعدها قمنا باستخدام الدالة AVG() لحساب متوسط رواتب الموظفين الموجودين في كل مجموعة, أي متوسط الموظفين الذين عندهم نفس قيمة الحقل country.

    ملاحظة: في هذا الإستعلام لم نقم بفلترة النتيجة التي سترجع بل عرضناها كما هي.

    الإستعلام

    الإستعلام التالي هو ما يجب كتابته بالضبط للحصول على الإحصاء المطلوب.

    SELECT country, AVG(salary)   -- country سيتم حسابه بعد أن يتم تجميع قيم الحقل salary متوسط الحقول
    FROM employees
    GROUP BY country;             -- على أساسهم AVG() سيتم تنفيذ الدالة country بعد أن يتم تجميع القيم الموجودة في العامود
    		

    نفس الإستعلام السابق و لكننا قمنا بتغيير أسماء الأعمدة و طريقة ظهور متوسط الرواتب حتى تظهر النتيجة النهائية بشكل أوضح و مفهوم.

    SELECT
    	country AS 'country',
    	FORMAT(AVG(salary), 2) AS 'Average Salary'
    FROM
    	employees
    GROUP BY
    	country;
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام الذي غيّرنا أسماء أعمدته.

    Country Average Salary
    Egypt 600.00
    KSA 750.00
    Lebanon 675.00
    Morocco 860.00
    Oman 900.00
    Syria 800.00
    Yaman 820.00


    المثال الثاني

    الإستعلام التالي يقوم بعرض متوسط الرواتب الذي يتم دفعه للموظفين من كل بلد و الذي يتجاوز 800 دولار.

    ما فعلناه لإجراء هذا الإحصاء هو تجميع أسماء البلدان الموجودة في الحقل country بواسطة الكلمة GROUP BY.
    بعدها قمنا باستخدام الدالة AVG() لحساب متوسط رواتب الموظفين الموجودين في كل مجموعة, أي متوسط الموظفين الذين عندهم نفس قيمة الحقل country.
    بعدها قمنا بفلترة النتيجة لعرض متوسط البلدان التي يتجاوز متوسط رواتب الموظفين فيها 800$, و فعلنا ذلك من خلال وضع شرط بواسطة الكلمة HAVING حددنا فيه أننا نريد عرض الأسطر التي فيها salary أكبر من 800.

    الإستعلام

    الإستعلام التالي هو ما يجب كتابته بالضبط للحصول على الإحصاء المطلوب.

    SELECT country, AVG(salary)   -- country سيتم حسابه بعد أن يتم تجميع قيم الحقل salary متوسط الحقول
    FROM employees
    GROUP BY country              -- على أساسهم AVG() سيتم تنفيذ الدالة country بعد أن يتم تجميع القيم الموجودة في العامود
    HAVING AVG(salary) > 800;     -- أكبر من 800 فقط salary النتيجة النهائية سيتم عرض الأسطر التي تحتوي على متوسط
    		

    نفس الإستعلام السابق و لكننا قمنا بتغيير أسماء الأعمدة و طريقة ظهور متوسط الرواتب حتى تظهر النتيجة النهائية بشكل أوضح و مفهوم.

    SELECT
    	country AS 'Country',
    	FORMAT(AVG(salary), 2) AS 'Average Salary'
    FROM
    	employees
    GROUP BY
    	country
    HAVING
    	AVG(salary) > 800;
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام الذي غيّرنا أسماء أعمدته.

    Country Average Salary
    Morocco 860.00
    Oman 900.00
    Yaman 820.00
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب