SQLوضع شروط لتخزين القيم
- مفهوم وضع شروط لتخزين القيم
- تجهيز قاعدة البيانات التي سنطبق عليها
- وضع شرط على العمود عند إنشاء الجدول
- وضع شرط على العمود بعد إنشاء الجدول
- إختبار الشروط الموضوعة على قيم الجدول
- حذف قيد الشرط الموضوع على العمود
مفهوم وضع شروط لتخزين القيم
عند تخزين البيانات في الجدول، يجب الإلتزام بنوع البيانات التي يمكن تخزينها في كل حقل. فمثلاً العمود الذي نوعه INT يمكن أن نخزن فيه أعداد صحيحة، و العمود الذي نوعه VARCHAR يمكن أن نخزن فيه نصوص و هكذا.
ماذا لو أردت وضع شروط على القيم التي يسمح بتخزينها، مثلاً تريد تخزين أعداد صحيحة و لكنك تريد أن تكون هذه الأعداد بين 0 و 100 فقط.
في هذه الحالة يمكنك إضافة قيد ( Constraint ) تضع فيه شرط قبول أي قيمة سيتم تخزينها في العمود.
القيد يمكن إضافته للعمود أثناء إنشاء الجدول أو في وقت لاحق.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash.
وضع شرط على العمود عند إنشاء الجدول
أثناء إنشاء الجدول يمكنك إضافة قيد على قيم التي سيتم وضعها في الأعمدة كما يلي.
- مكان الكلمة
constraint_name نضع الإسم الذي سيتم إعطاؤه للقيد.
- مكان الكلمة
conditions نضع شروط قبول القيم في الحقول.
الإستعلام التالي ينشئ جدول جديد إسمه books و يضيف قيد إسمه check_book_pages يؤكد على أن قيم العمود pages يجب أن تكون أكبر من صفر.
وضع شرط على العمود بعد إنشاء الجدول
في حال كان لديك جدول و تريد وضع شروط على القيم التي سيتم تخزينها فيه يمكنك تعديل الجدول و إضافة الشرط فيه كقيد كما يلي.
- مكان الكلمة
constraint_name نضع الإسم الذي سيتم إعطاؤه للقيد.
- مكان الكلمة
conditions نضع شروط قبول القيم في الحقول.
الإستعلام التالي يضيف قيد إسمه check_book_price يؤكد على أن قيم العمود price يجب أن تكون بين 0 و 50.
إختبار الشروط الموضوعة على قيم الجدول
الإستعلام التالي يحاول إضافة سطر في الجدول books و لكنه سيفشل لأن القيمة الموضوعة في الحقل pages أصغر من صفر.
المثال الأول
النتيجة
Check constraint 'check_book_pages' is violated.
النتيجة تعني أنه لم يتم إضافة السطر و هذا الأمر حدث بسبب أن القيد check_book_pages فحص القيمة المدخلة في الحقل pages و وجدها لم تطابق الشرط الموضوع فيه.
الإستعلام التالي يحاول إضافة سطر في الجدول books و لكنه سيفشل لأن القيمة الموضوعة في الحقل price ليست بين 0 و 50.
المثال الثاني
النتيجة
Check constraint 'check_book_price' is violated.
النتيجة تعني أنه لم يتم إضافة السطر و هذا الأمر حدث بسبب أن القيد check_book_price فحص القيمة المدخلة في الحقل price و وجدها لم تطابق الشرط الموضوع فيه.
الإستعلام التالي يحاول إضافة سطر في الجدول books وسينجح في ذلك لأن جميع القيم المدخلة لا تخالف القيود الموضوعة على الأعمدة.
المثال الثالث
النتيجة
1 row inserted.
النتيجة تعني أنه تم إضافة السطر في الجدول.
حذف قيد الشرط الموضوع على العمود
لحذف قيد الشرط الموضوع على القيم التي يمكن تخزينها في العمود يمكنك استخدام الأمر ALTER كما يلي.
- مكان الكلمة
table_name نضع إسم الجدول الذي يحتوي على القيد.
- مكان الكلمة
constraint_name نضع إسم القيد الذي نريد حذفه.
الإستعلام التالي يقوم بحذف القيد check_book_price من الجدول books.