SQLوضع قيم إفتراضية للحقول
- مفهوم القيم الإفتراضية
- تجهيز قاعدة البيانات التي سنطبق عليها
- مثال يوضح متى يتم إضافة القيم الإفتراضية التي وضعناها للأعمدة
- طريقة وضع قيمة إفتراضية لعمود معرف مسبقاً في الجدول
- طريقة إلغاء القيمة إفتراضية التي وضعناها للعامود
مفهوم القيم الإفتراضية
عند إضافة سطر جديد في أي جدول, كنا نلاحظ أن الحقول التي لا نضيف فيها قيم يتم إظهار القيمة Null للإشارة إلى أنها فارغة.
إذاً, القيمة الإفتراضية لأي حقل هي القيمة Null.
في حال أردت وضع قيمة إفتراضية يتم إعطاءها للحقل الفارغ بدلاً من القيمة Null, يمكنك تحديد القيمة التي تريد وضعها بشكل إفتراضي عند تعريف العمود.
ملاحظة: عند وضع قيمة إفتراضية يجب مراعاة نوع القيم التي يمكن تخزينها في الجدول, فمثلاً إن كان نوع الجدول INT يجب أن تختار قيمة إفتراضية نوعها INT مثل الرقم 0
و ليس قيمة من نوع آخر مثل الكلمة 'Empty' لأنه بالمنطق لا يمكنك تخزين نص في حقل مخصص لتخزين رقم.
الشكل العام لإستخدامه
- مكان الكلمة
table_name
نضع إسم الجدول الذي نريد إجراء تعديلات عليه. - مكان الكلمة column_name نحدد إسم العمود.
- مكان الكلمة datatype نحدد نوع البيانات التي يمكن تخيزنها في العمود.
- بعد الكلمة DEFAULT نضع القيمة الإفتراضية التي نريد وضعها للحقول الموضوعة تحت هذا العمود.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
و تنشئ فيها جدول إسمه users
.
العمود country
وضعنا فيه الكلمة 'Unknown'
كقيمة إفتراضية.
الإستعلام
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدول users
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
مثال يوضح متى يتم إضافة القيم الإفتراضية التي وضعناها للأعمدة
الإستعلام التالي يضيف 4 مستخدمين في الجدول users
.
بعدها يعرض كل الأسطر التي تم إضافتها في الجدول.
الإستعلام
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
id | first_name | last_name | country |
---|---|---|---|
1 | Mhamad | NULL | Unknown |
2 | Ayman | Mostafa | Unknown |
3 | Ahmad | Naji | Syria |
4 | Saly | Harmush | NULL |
نلاحظ أن العمود country
يظهر فيه عدة قيم من بينها القيمة NULL و القيمة الإفتراضية Unknown
و سنضع قراءة تحليلة لكل سطر تم إدخاله حتى تعرف السبب.
السطر الأول
تم وضع القيمة NULL في الحقل last_name
لأننا لم ندخل قيمة فيه.
تم وضع القيمة Unknown
في الحقل country
لأنها القيمة الإفتراضية التي حددنا أنه يتم وضعها في حال لم ندخل قيمة فيه.
السطر الثاني
تم وضع القيمة Unknown
في الحقل country
لأنها القيمة الإفتراضية التي حددنا أنه يتم وضعها في حال لم ندخل قيمة فيه.
السطر الثالث
لم يتم وضع القيمة الإفتراضية Unknown
في الحقل country
لأنه تم تمرير قيمة له.
السطر الرابع
لم يتم وضع القيمة الإفتراضية Unknown
في الحقل country
لأنه تم عمداً تمرير القيمة NULL في الإستعلام.
طريقة وضع قيمة إفتراضية لعمود معرف مسبقاً في الجدول
في حال أردت وضع قيمة إفتراضية لعمود موجود مسبقاً في الجدول, يمكنك تعديل العمود بواسطة الأمر ALTER.
طريقة وضع القيمة الإفتراضية لعمود تم تعريفه مسبقاً, تختلف من قاعدة بيانات لأخرى و لكن الفكرة هي نفسها تماماً.
في قواعد بيانات MySQL
في قواعد بيانات SQL Server
في قواعد بيانات Oracle
في قواعد بيانات Access
مثال
في حال أردنا وضع الكلمة Missed
كقيمة إفتراضية للحقل last_name
في أي سطر جديد يتم إضافته, نكتب الإستعلام كالتالي في قواعد بيانات MySQL.
الإستعلام
طريقة إلغاء القيمة إفتراضية التي وضعناها للعامود
في حال أردت عدم وضع قيمة إفتراضية للعامود، أي إلغاء وضع القيمة الإفتراضية التي وضعتها سابقاً للعامود. يمكنك تعديل العمود بواسطة الأمر ALTER.
طريقة لإلغاء القيمة الإفتراضية للعامود, تختلف من قاعدة بيانات لأخرى و لكن الفكرة هي نفسها تماماً.
في قواعد بيانات MySQL
في قواعد بيانات SQL Server / Oracle / Access
مثال
في حال أردنا عدم وضع قيمة إفتراضية لقيم العمود country
, نكتب الإستعلام كالتالي في قواعد بيانات MySQL.