منشور

سلسلة دروس 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

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.