Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

SQLوضع شروط لتخزين القيم

  • مفهوم وضع شروط لتخزين القيم
  • وضع شرط على العمود عند إنشاء الجدول
  • وضع شرط على العمود بعد إنشاء الجدول
  • حذف قيد الشرط الموضوع على العامود

مفهوم وضع شروط لتخزين القيم

عند تخزين البيانات في أي جدول, نلاحظ أنه علينا إحترام نوع البيانات التي يجب تخزينها في كل حقل. فمثلاً العمود الذي نوعه INT يمكن أن نخزن فيه أعداد صحيحة, و العمود الذي نوعه VARCHAR يمكن أن نخزن فيه نصوص و هكذا.

ماذا لو أردت تحديد القيم التي يسمح بتخزينها، فمثلاً كنت تريد تخزين أعداد صحيحة و لكنك تريد أن تكون هذه الأعداد بين 0 و 100 فقط.
في هذه الحالة يمكنك إضافة قيد ( CONSTRAINT ) تضع فيه شرط قبول أي قيمة سيتم تخزينها في العمود.

وضع شرط على العمود عند إنشاء الجدول

لوضع شرط على القيم التي يمكن تخزينها في العمود، يمكننا وضع قيد ( CONSTRAINT ) لتحديده.
هذه الطريقة متاحة في جميع قواعد البيانات و استخدامها سهل لأننا نقوم بتعريف الأعمدة و في النهاية نضيف القيد.
المميز في هذه الطريقة، أنك في حال قررت إلغاء القيد لاحقاً, يمكنك فعل ذلك بكل سهولة لأنك ستعتمد على إسم القيد الذي وضعته بنفسك من أجل إلغائه.

مثال

CREATE TABLE books (
id INT NOT NULL,
title VARCHAR(255),
pages INT,
price DECIMAL(5,2),
-- يجب أن تكون قيمته أقل من 50 price يجب أن تكون قيمته أكبر من 0, و العمود pages يحدد أن العمود chk_book_pages_and_price هنا قمنا بوضع قيد بإسم
CONSTRAINT chk_book_pages_and_price CHECK (pages > 0 AND price < 50)
);
CREATE TABLE books ( id INT NOT NULL, title VARCHAR(255), pages INT, price DECIMAL(5,2), -- يجب أن تكون قيمته أقل من 50 price يجب أن تكون قيمته أكبر من 0, و العمود pages يحدد أن العمود chk_book_pages_and_price هنا قمنا بوضع قيد بإسم CONSTRAINT chk_book_pages_and_price CHECK (pages > 0 AND price < 50) );

وضع شرط على العمود بعد إنشاء الجدول

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

ALTER TABLE table_name
ADD CONSTRAINT check_constraint_name
CHECK (conditions);
ALTER TABLE table_name ADD CONSTRAINT check_constraint_name CHECK (conditions);

الإستعلام التالي يقوم بوضع شرط على القيم التي يمكن تخزينها في العمود price يحدد أن القيم التي تضاف فيه يجب أن تكون أصغر من 0, و شرط آخر على العمود price يحدد أن القيم التي تضاف فيه يجب أن تكون أقل من 50.

مثال

ALTER TABLE books -- books هنا قمنا بتحديد أننا نريد إجراء تعديل على بنية الجدول
ADD CONSTRAINT chk_book_pages_and_price -- chk_book_pages_and_price هنا قمنا بوضع قيد بإسم
CHECK (pages > 0 AND price < 50) -- يجب أن تكون قيمته أقل من 50 price يجب أن تكون قيمته أكبر من 0, و العمود pages يحدد أن العامود
ALTER TABLE books -- books هنا قمنا بتحديد أننا نريد إجراء تعديل على بنية الجدول ADD CONSTRAINT chk_book_pages_and_price -- chk_book_pages_and_price هنا قمنا بوضع قيد بإسم CHECK (pages > 0 AND price < 50) -- يجب أن تكون قيمته أقل من 50 price يجب أن تكون قيمته أكبر من 0, و العمود pages يحدد أن العامود

حذف قيد الشرط الموضوع على العامود

لإلغاء الشرط ( CONSTRAINT ) الموضوع على القيم التي يمكن تخزينها في العمود يمكنك تعديل الجدول على النحو التالي.


ALTER TABLE table_name
DROP CONSTRAINT chk_constraint_name;
ALTER TABLE table_name DROP CONSTRAINT chk_constraint_name;

الإستعلام التالي يقوم بإلغاء قيد إسمه chk_book_pages.

مثال

ALTER TABLE books -- books هنا قمنا بتحديد أننا نريد إجراء تعديل على بنية الجدول
DROP CONSTRAINT chk_book_pages_and_price ; -- الموضوع على أحد أعمدته chk_book_pages هنا قمنا بتحديد أننا نريد إلغاء القيد
ALTER TABLE books -- books هنا قمنا بتحديد أننا نريد إجراء تعديل على بنية الجدول DROP CONSTRAINT chk_book_pages_and_price ; -- الموضوع على أحد أعمدته chk_book_pages هنا قمنا بتحديد أننا نريد إلغاء القيد