82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
|
---
|
||
|
title: SQL CHECK Constraint
|
||
|
localeTitle: SQL CHECK القيد
|
||
|
---
|
||
|
يتم استخدام القيد CHECK لتحديد نطاق القيمة التي يمكن وضعها في عمود.
|
||
|
|
||
|
إذا حددت قيد CHECK في عمود واحد ، فإنها تسمح فقط بقيم معينة لهذا العمود.
|
||
|
|
||
|
إذا قمت بتحديد قيد CHECK على جدول ، فيمكنه تقييد القيم في أعمدة معينة استنادًا إلى القيم الموجودة في أعمدة أخرى في الصف.
|
||
|
|
||
|
### SQL الاختيار على CREATE TABLE
|
||
|
|
||
|
ينشئ SQL التالية قيد CHECK على العمود "العمر" عند إنشاء جدول "الأشخاص". يضمن القيد CHECK أنه لا يمكن أن يكون لديك أي شخص أقل من 18 عامًا:
|
||
|
|
||
|
**الخلية:**
|
||
|
|
||
|
`CREATE TABLE Persons (
|
||
|
ID int NOT NULL,
|
||
|
LastName varchar(255) NOT NULL,
|
||
|
FirstName varchar(255),
|
||
|
Age int,
|
||
|
CHECK (Age>=18)
|
||
|
);
|
||
|
`
|
||
|
|
||
|
**SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
`CREATE TABLE Persons (
|
||
|
ID int NOT NULL,
|
||
|
LastName varchar(255) NOT NULL,
|
||
|
FirstName varchar(255),
|
||
|
Age int CHECK (Age>=18)
|
||
|
);
|
||
|
`
|
||
|
|
||
|
للسماح بتسمية قيد CHECK ، ولتحديد قيد CHECK على أعمدة متعددة ، استخدم بناء جملة SQL التالي:
|
||
|
|
||
|
**MySQL / SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
`CREATE TABLE Persons (
|
||
|
ID int NOT NULL,
|
||
|
LastName varchar(255) NOT NULL,
|
||
|
FirstName varchar(255),
|
||
|
Age int,
|
||
|
City varchar(255),
|
||
|
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
|
||
|
);
|
||
|
`
|
||
|
|
||
|
### SQL الاختيار على ALTER TABLE
|
||
|
|
||
|
لإنشاء قيد CHECK على العمود "العمر" عند إنشاء الجدول بالفعل ، استخدم SQL التالي:
|
||
|
|
||
|
**MySQL / SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
`ALTER TABLE Persons
|
||
|
ADD CHECK (Age>=18);
|
||
|
`
|
||
|
|
||
|
للسماح بتسمية قيد CHECK ، ولتحديد قيد CHECK على أعمدة متعددة ، استخدم بناء جملة SQL التالي:
|
||
|
|
||
|
**MySQL / SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
`ALTER TABLE Persons
|
||
|
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
|
||
|
`
|
||
|
|
||
|
### انخفاض القيد الاختيار
|
||
|
|
||
|
لإسقاط قيد CHECK ، استخدم SQL التالي:
|
||
|
|
||
|
**SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
`ALTER TABLE Persons
|
||
|
DROP CONSTRAINT CHK_PersonAge;
|
||
|
`
|
||
|
|
||
|
**الخلية:**
|
||
|
|
||
|
`ALTER TABLE Persons
|
||
|
DROP CHECK CHK_PersonAge;
|
||
|
`
|