سلسلة دروس SQL| CHECK
هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس
قيد Check في SQL
يتم استخدام قيد CHECK لتحديد نطاق القيمة الذي يمكن وضعه في عمود.
إذا قمت بتعريف قيد CHECK على عمود واحد، فإنه يسمح فقط بقيم معينة لهذا العمود.
إذا قمت بتعريف قيد CHECK على جدول، فيمكنه تحديد القيم في أعمدة معينة بناءً على القيم الموجودة في الأعمدة الأخرى في الصف.
CHECK في CREATE TABLE
يقوم SQL التالي بإنشاء قيد CHECK على عمود “العمر” عند إنشاء جدول “الأشخاص”. يضمن قيد CHECK أن يكون عمر الشخص 18 عامًا أو أكثر:
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 CHECK في ALTER TABLE
لإنشاء قيد CHECK على عمود “العمر” عند إنشاء الجدول، استخدم SQL التالية:
MySQL / SQL Server / Oracle / MS Access:
1
2
3
4
5
ALTER TABLE Persons
ADD CHECK (Age>=18);
للسماح بتسمية قيد CHECK ، ولتحديد قيد CHECK على أعمدة متعددة ، استخدم بناء جملة SQL التالي:
MySQL / SQL Server / Oracle / MS Access:
1
2
3
4
5
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
حذف قيد CHECK
لحذف قيد CHECK، استخدم عبارة SQL التالية:
SQL Server / Oracle / MS Access:
1
2
3
4
5
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
1
2
3
4
5
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
التالي: Default