إعلان
دورة تطوير التطبيقات باستخدام لغة 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 التعامل مع الحقول الفارغة

    مفهوم الحقول الفارغة

    في البداية, المقصود بالحقول الفارغة ( Null Values ) هو أي حقل قيمته غير محددة بعد في الجدول كما سبق و رأينا.

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

    طريقة إنشاء حقول لا يمكن أن تكون فارغة

    في البداية سبق و تعاملنا مع هذا الأمر في قواعد البيانات التي كنا نجهزها في الدروس السابقة حيث كنا نضع في الجدول عمود إسمه id و من خصائصه أنه لا يمكن أن يكون فارغاً لدى أي سطر موضوع تحته و أنه يتم إعطاؤه ترقيم تلقائي.

    الآن في حال أردت جعل العمود لا يسمح بأن يكون فيه أي حقول فارغة, يمكنك إضافة الكلمة NOT NULL عند تعريف العمود لحظة إنشاء الجدول.
    عندها, حين تقوم بإدخال أي سطر في الجدول سيكون عليك إدخل قيمة لكل حقل لا يقبل أن يكون فارغاً و إلا فلن يسمح لك بإدخال السطر الذي كنت تريد إضافته.

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

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

    الجدول users يتألف من الحقول التالية:

    • id عبارة عن رقم يتم إعطاؤه بشكل تلقائي لكل سطر جديد يتم إضافته.
    • username يمثل إسم المستخدم و الذي يجب تحديده عند إضافة سطر جديد.
    • country يمثل بلد المستخدم, و الذي يمكن تحديده عند إضافة مستخدم جديد و يمكن تركه فارغاً.

    الإستعلام

    -- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها
    DROP DATABASE IF EXISTS harmash;
    
    -- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها
    CREATE DATABASE harmash;
    
    -- harmash هنا قمنا بتحديد أن أي إستعلام جديد سيتم تنفيذه على قاعدة البيانات
    USE harmash;
    
    -- يتألف من 3 أعمدة users هنا قمنا بإنشاء جدول جديد إسمه
    -- لأننا قمنا بتحديدها قبل إستدعاء هذا الأمر harmash سيتم إنشاء هذا الجدول بداخل قاعدة البيانات
    CREATE TABLE users (
        id       INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(50) NOT NULL,
        country  VARCHAR(50)
    );
    
    -- هنا قمنا بإضافة 10 أسطر في الجدول, أي أضفنا معلومات 10 مستخدمين
    -- لاحظ أننا لم نحدد أسماء الأعمدة التي سنضع فيها البيانات لأننا قمنا بملئ جميع المعلومات
    -- مكان كل حقل لن نقوم بوضع قيمة فيه null بما أننا لم نحدد أسماء الأعمدة التي سنملأها لاحظ أننا مجبورين على وضع كلمة
    -- الموضوعة في بداية كل أمر سيتم إستبدالها بترقيم تلقائي من قبل قاعدة البيانات null و لا تنسى أن الكلمة
    INSERT INTO users VALUES (null, "rami", null);
    INSERT INTO users VALUES (null, "ahmad", null);
    INSERT INTO users VALUES (null, "hanan", "KSA");
    INSERT INTO users VALUES (null, "saly", "Lebanon");
    INSERT INTO users VALUES (null, "samir", null);
    INSERT INTO users VALUES (null, "hamad", "Syria");
    INSERT INTO users VALUES (null, "abdullah", null);
    INSERT INTO users VALUES (null, "rashed", "Oman");
    INSERT INTO users VALUES (null, "majed", "Yaman");
    INSERT INTO users VALUES (null, "rayan", null);
    		

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


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

    id user country
    1 rami NULL
    2 ahmad NULL
    3 hanan KSA
    4 saly Lebanon
    5 samir NULL
    6 hamad Syria
    7 abdullah NULL
    8 rashed Oman
    9 majed Yaman
    10 rayan NULL

    طريقة معرفة الحقول الفارغة

    للتأكد ما إن كان الحقل يحتوي على قيمة أم أنه فارغ يجب استخدام العامل IS NULL أو العامل IS NOT NULL عند التشييك على قيمة الحقل.
    لا تستخدم الرموز = و != و <> لمعرفة ما إن كان الحقل فارغاً لأنها تستخدم لهذا الغرض بل تستخدم لمقارنة القيم النصية و الرقمية و التواريخ فقط كما أشرنا سابقاً.


    المثال الأول

    الإستعلام التالي يقوم بعرض كل أسطر الجدول ما عدا الأسطر التي لا تملك قيمة في الحقل country.

    الإستعلام

    SELECT * FROM users           -- users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
    WHERE country IS NOT NULL;    -- فيه فارغاً country أي سطر سيتم عرضه يجب أن لا يكون الحقل
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
    نلاحظ أنه يوجد 5 مستخدمين معروفين من أي بلد, أي الحقل country عندهم ليس فارغاً.

    id user country
    3 hanan KSA
    4 saly Lebanon
    6 hamad Syria
    8 rashed Oman
    9 majed Yaman


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

    الإستعلام التالي يقوم بعرض كل أسطر الجدول التي لا تملك قيمة في الحقل country.

    الإستعلام

    SELECT * FROM users       -- users هنا قمنا بعرض جميع البيانات الموجودة في الجدول
    WHERE country IS NULL;    -- فيه فارغ country أي سطر سيتم عرضه يجب أن يكون الحقل
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
    نلاحظ أنه يوجد 5 مستخدمين غير معروفين من أي بلد, أي الحقل country عندهم فارغ.

    id user country
    1 rami NULL
    2 ahmad NULL
    5 samir NULL
    7 abdullah NULL
    10 rayan NULL

    وضع قيم إفتراضية مكان الحقول الفارغة التي يتم جلبها

    في حال كانت نتيجة الإستعلام تضمن حقول فارغة, يمكنك عرض كلمة يفهمها المستخدم بشكل أسهل مثل Not Specified أو Unknown أو غير محدد أو أي كلمة أخرى لها ذات المعنى.


    الآن, لتبديل الحقول الفارغة التي قيمتها NULL عليك استخدام الدالة المخصصة في قاعدة البيانات لأجل هذا الغرض.

    • في قواعد بيانات MySQL نستخدم الدالة IFNULL() من أجل تبديل قيم الحقول الفارغة.
    • في قواعد بيانات SQL Server نستخدم الدالة ISNULL() من أجل تبديل قيم الحقول الفارغة.
    • في قواعد بيانات ORACLE نستخدم الدالة NVL() من أجل تبديل قيم الحقول الفارغة.

    ملاحظة: في الأمثلة التالية إستخدمنا الدالة IFNULL() لأننا نطبق التمارين في قواعد بيانات MySQL.


    مثال

    الإستعلام التالي يقوم بعرض كل أسطر الجدول و يبدل أي قيمة فارغة في الحقل country بالكلمة 'unknown'.

    الإستعلام

    SELECT
    	id, username, IFNULL(country, 'Unknown') AS 'country'
    FROM
    	users;
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
    نلاحظ أنه يوجد 5 مستخدمين تم وضع القيمة 'Unknown' لهم في الحقل country لأنه كان فارغاً عندهم.

    id user country
    1 rami Unknown
    2 ahmad Unknown
    3 hanan KSA
    4 saly Lebanon
    5 samir Unknown
    6 hamad Syria
    7 abdullah Unknown
    8 rashed Oman
    9 majed Yaman
    10 rayan Unknown


    ملاحظة

    في المثال السابق قمنا بوضع الكلمة 'Unknown' كقيمة إفتراضية لأن الحقل يجب أن يحتوي على قيمة نصية في الأساس فكان وضع هذه القيمة مناسباً.
    بينما لو كان الحقل في الأساس مخصص لقيم رقمية لكان الأفضل أن نضع 0 كقيمة إفتراضية.

    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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