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_book_pages
فحص القيمة المدخلة في الحقل pages
و وجدها لم تطابق الشرط الموضوع فيه.
الإستعلام التالي يحاول إضافة سطر في الجدول books
و لكنه سيفشل لأن القيمة الموضوعة في الحقل price
ليست بين 0 و 50.
المثال الثاني
النتيجة
النتيجة تعني أنه لم يتم إضافة السطر و هذا الأمر حدث بسبب أن القيد check_book_price
فحص القيمة المدخلة في الحقل price
و وجدها لم تطابق الشرط الموضوع فيه.
الإستعلام التالي يحاول إضافة سطر في الجدول books
وسينجح في ذلك لأن جميع القيم المدخلة لا تخالف القيود الموضوعة على الأعمدة.
المثال الثالث
النتيجة
النتيجة تعني أنه تم إضافة السطر في الجدول.
حذف قيد الشرط الموضوع على العمود
لحذف قيد الشرط الموضوع على القيم التي يمكن تخزينها في العمود يمكنك استخدام الأمر ALTER كما يلي.
- مكان الكلمة
table_name
نضع إسم الجدول الذي يحتوي على القيد. - مكان الكلمة
constraint_name
نضع إسم القيد الذي نريد حذفه.
الإستعلام التالي يقوم بحذف القيد check_book_price
من الجدول books
.