9- كورس شرح قواعد البيانات MYSQL – MySQL NULL Values

**NULL Values في MySQL: شرح مفصل وأمثلة متنوعة**

تعتبر قاعدة البيانات MySQL من أشهر نظم إدارة قواعد البيانات العلاقية، والتي تدعم استخدام القيم NULL. تعد NULL قيمة خاصة تُستخدم للإشارة إلى عدم وجود قيمة في حقل معين. في هذا المقال، [شركة برمجة مصرية] سنقوم بشرح مفهوم NULL في MySQL، وكيفية التعامل معه، بالإضافة إلى تقديم أمثلة توضيحية.

مفهوم NULL في MySQL

في MySQL، تمثل NULL عدم وجود قيمة، وهي ليست [شركة برمجة مصرية] صفرًا أو سلسلة فارغة. إن NULL تعني “غير معروف” أو “لا يوجد قيمة محددة”. من المهم أن نفهم أن NULL ليست قيمة بحد ذاتها، لكنها مؤشر لغياب القيمة.

التعامل مع NULL في MySQL

هناك عدة نقاط يجب أخذها في الاعتبار عند التعامل مع NULL في MySQL:

1. **العمليات الحسابية**: أي عملية حسابية تحتوي على NULL ستنتج NULL. على سبيل المثال:

SELECT 5 + NULL; -- النتيجة ستكون NULL
   

2. **المقارنة**: لا يمكن استخدام عمليات المقارنة التقليدية (مثل =، ) مع NULL. يجب استخدام العبارات IS NULL أو IS NOT NULL.

SELECT * FROM employees WHERE salary IS NULL; -- لاختيار الموظفين الذين لم يتم تحديد رواتب لهم
   

3. **الدوال**: بعض الدوال مثل COUNT ستتعامل مع NULL بطريقة معينة. دالة COUNT لن تحسب القيم NULL.

SELECT COUNT(column_name) FROM table_name; -- تحسب فقط القيم غير NULL
   

4. **الدوال الشرطية**: يمكنك استخدام الدوال الشرطية مثل IFNULL أو COALESCE لتعيين قيمة افتراضية عند وجود NULL.

SELECT IFNULL(column_name, 'Default Value') FROM table_name; -- تعيد 'Default Value' إذا كانت القيمة NULL
   

5. **الفهارس**: لن تشمل الفهارس في MySQL القيم NULL. إذا كانت لديك أعمدة تحتوي على NULL وتريد تحسين الأداء، يجب مراعاة هذه النقطة.

أمثلة على استخدام NULL في MySQL

لإيضاح كيفية التعامل مع NULL في MySQL، سنستعرض بعض الأمثلة العملية:

1. **إنشاء جدول يحتوي على قيم NULL**:

CREATE TABLE students (
       id INT AUTO_INCREMENT PRIMARY KEY,
       name VARCHAR(100),
       email VARCHAR(100),
       phone VARCHAR(15) DEFAULT NULL
   );
   

2. **إدراج بيانات مع NULL**:

INSERT INTO students (name, email) VALUES ('John Doe', 'john@example.com');
   -- سيتم إدراج NULL تلقائيًا في عمود الهاتف
   

3. **اختيار السجلات التي تحتوي على NULL**:

SELECT * FROM students WHERE phone IS NULL;
   -- يسترجع الطلاب الذين لا تحتوي سجلاتهم على أرقام هواتف
   

4. **تحديث القيم NULL**:

UPDATE students SET phone = '123456789' WHERE phone IS NULL;
   -- تعيين رقم الهاتف للطلاب الذين لم يكن لديهم أرقام هواتف
   

5. **استخدام COALESCE لتجنب NULL**:

SELECT name, COALESCE(phone, 'No Phone Provided') AS phone FROM students;
   -- تعرض 'No Phone Provided' للطلاب الذين ليس لديهم أرقام هواتف
   

الخلاصة

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