الCHECKيفرض القيد في SQL قواعد على قيم الأعمدة عن طريق الحد من البيانات التي يمكن إدراجها أو تحديثها. إنه يضمن أن القيم تستوفي الشروط المحددة. إذا كانت القيمة تنتهك الشرط، فسيتم رفض العملية.CHECKيمكن إضافتها أثناء إنشاء الجدول أو تعديله.
بناء جملة قيد التحقق
ال التحقق من القيد يمكن تعريفها عند إنشاء جدول أو إضافتها لاحقًا باستخدام عبارة ALTER.
1. باستخدام التحقق مع إنشاء جدول :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. باستخدام التحقق مع ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
النقاط الرئيسية حول قيد التحقق:
- سلامة المجال: فهو يضمن أن القيم الموجودة في العمود تستوفي الشروط المحددة وبالتالي تساعد في الحفاظ على البيانات الصحيحة في قاعدة البيانات.
- تستخدم مع إنشاء أو تغيير: يمكن تعريف قيد التحقق عند إنشاء جدول أو إضافته إلى جدول موجود.
- يمكن دمجها مع قيود أخرى: يمكنك استخدام CHECK مع قيود أخرى مثل المفتاح الأساسي المفتاح الخارجي وليس فارغًا لتحديد قواعد أكثر شمولاً لبيانات الجدول.
- القيود على مستوى الصف: على عكس القيود على مستوى الأعمدة التي تؤثر على الأعمدة الفردية، يمكن تطبيق قيد التحقق على أعمدة متعددة في وقت واحد إذا لزم الأمر.
أمثلة على استخدام قيد التحقق
دعونا نلقي نظرة على بعض الأمثلة العملية لفهم كيفية عمل قيد التحقق بشكل أفضل SQL .
اصطلاح الاسم جافا
مثال 1: تطبيق الفحص على عمود واحد
في هذا المثال، قمنا بإنشاء جدول "العملاء" بعمود "العمر" الذي يجب أن يحتوي على قيم بين 18 و120. ويضمن قيد التحقق عدم إدراج عمر غير صالح في الجدول.
استفسار:
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);
-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);
-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint
يحتوي عمود "العمر" على قيد التحقق الذي يضمن أن القيمة يجب أن تتراوح بين 18 و120. إذا حاولت إدراج عمر خارج هذا النطاق، فسوف ترمي قاعدة البيانات خطأً.
مثال 2: التحقق من القيد مع أعمدة متعددة
يمكننا أيضًا استخدام قيد التحقق عبر أعمدة متعددة. على سبيل المثال لنفترض أن لدينا جدول الموظفين ونريد التأكد من أن الراتب موجب والعمر أكبر من أو يساوي 18.
استفسار:
CREATE TABLE Employee (
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);
-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);
-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint
يضمن قيد التحقق استيفاء كلا الشرطين. يجب أن يكون عمر الموظف 18 عامًا على الأقل ويجب أن يكون الراتب أكبر من 0. يكون هذا النوع من القيد مفيدًا عند تضمين أعمدة متعددة في القاعدة.
مثال 3: إضافة قيد التحقق باستخدام ALTER TABLE
يمكننا إضافة قيد التحقق إلى جدول موجود باستخدام عبارة ALTER TABLE.
استفسار:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
يؤدي هذا إلى إضافة قيد التحقق المسمى chk_salary إلى جدول الموظفين مما يضمن أن الحد الأدنى لقيمة عمود الراتب هو 30000. إذا حاولت إدراج أو تحديث سجل براتب أقل من 30000، فسوف تفشل العملية.
مسابقة مقترحة تحرير الاختبار 5 أسئلةما الذي يضمنه قيد التحقق في SQL؟
- أ
يقبل العمود القيم دون أي قواعد
- ب
يقبل العمود القيم فقط عندما تكون فريدة
- ج
يقبل العمود القيم فقط عندما تكون غير فارغة
- د
يقبل العمود القيم المطابقة للقاعدة المحددة
يفرض CHECK شرطًا على قيم الأعمدة يرفض أي بيانات تنتهك القاعدة المحددة.
متى يمنع SQL INSERT باستخدام CHECK؟
- أ
عندما تكون القيمة مكررة في العمود
- ب
عندما تنتهك القيمة الشرط المحدد
- ج
عندما لا يحتوي الجدول على قيد أساسي
- د
عندما تكون القيمة فارغة والعمود يسمح بالقيمة الخالية
إذا أدت البيانات المدرجة أو المحدثة إلى كسر شرط التحقق، فسيقوم SQL بإلغاء العملية.
أين يمكن تعريف قيد التحقق؟
- أ
فقط داخل بناء جملة استعلام SELECT
- ب
فقط بعد الإعلان عن المفتاح الأساسي
- ج
أثناء إنشاء الجدول أو تعديله
- د
فقط للأعمدة الرقمية ذات النطاقات
يمكن إضافة CHECK أثناء إنشاء الجدول أو لاحقًا باستخدام عبارة ALTER TABLE.
ماذا يحدث في قيد التحقق متعدد الأعمدة؟
- أ
يمكن أن تشير الحالة إلى عمود واحد فقط
- ب
يمكن أن تشير الحالة إلى أعمدة متعددة
- ج
الحالة تعمل فقط على الأعمدة الرقمية
- د
يتجاهل الشرط القيم أثناء الإدراج
يمكن لـ CHECK تطبيق القواعد باستخدام عمودين أو أكثر لفرض التحقق من الصحة المدمج.
ما هو الإدخال الذي يفشل في قيد التحقق (العمر ≥ 18)؟
- أ
قيمة العمر أقل من خمسة عشر عاما
- ب
قيمة العمر تساوي بالضبط ثمانية عشر
- ج
قيمة العمر أكبر من خمسة وعشرين
- د
قيمة العمر المخزنة كقيمة فارغة مسموح بها
أي قيمة أقل من 18 تنتهك قاعدة التحقق وتؤدي إلى فشل الإدراج.
تم إكمال الاختبار بنجاح 2/5دقة : 0%قم بالدخول لمشاهدة الشرح 1/5 1/5 < Previous التالي >