Check (Check)
اینجا درباره «قیود CHECK» حرف می زنیم. «قید (Constraint)» یعنی قانونی روی ستون یا جدول. «CHECK» بررسی می کند مقدارها در بازه مجاز باشند. مثل نمره مدرسه که باید بین 0 تا 20 باشد. برای آشنایی سریع، صفحه قیود CHECK را مرجع کن.
قید CHECK چیست؟
«قید CHECK» مقدار یک ستون را محدود می کند. اگر مقدار بیرونِ قانون باشد، ذخیره نمی شود. همچنین می تواند بر اساس ستون های دیگر همان ردیف تصمیم بگیرد.
ایجاد CHECK هنگام ساخت جدول
در این نمونه، سن باید 18 یا بیشتر باشد. بنابراین داده نامعتبر رد می شود.
MySQL
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);
);
نام گذاری قید و قید چندستونی
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');
);
نکته: قانون می تواند هم زمان چند ستون را بررسی کند. حواست به نوع داده باشد.
افزودن CHECK با ALTER TABLE
اگر جدول ساخته شده است، می توانی بعداً قید را اضافه کنی.
ALTER TABLE Persons
ADD CHECK (Age >= 18);
برای نام گذاری قید و بررسی چندستونی، از CONSTRAINT استفاده کن.
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age >= 18 AND City = 'Sandnes');
حذف یک CHECK
برای حذف باید نام قید را داشته باشی. دستورها در سیستم ها کمی فرق دارند.
SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
تمرین گام به گام
- جدول Persons را با ستون Age بساز.
- قید CHECK سنِ 18 به بالا را بگذار.
- سپس شهری خاص را هم الزام کن.
- یک مقدار نامعتبر وارد کن و نتیجه را ببین.
نکته: برای ارتباط جدول ها، صفحه کلید خارجی را ببین. همچنین مقدار پیش فرض را در Default بررسی کن.
جمع بندی سریع
- CHECK قانونِ اعتبار مقدارهاست.
- می تواند چند ستون را چک کند.
- می شود در CREATE یا ALTER افزود.
- حذف نیازمند نام قید است.
- همیشه نوع داده را هماهنگ کن.