سلام! امروز میخواهیم درباره محدودیتهای SQL صحبت کنیم، که تقریبا میتوان گفت تقریبا در تمامی پایگاههای داده استفاده میشوند. این محدودیتها به ما کمک میکنند تا دادههایمان تعاملات منطقی و درستی داشته باشند و از ذخیرهسازی دادههای ناسازگار جلوگیری کنیم. در اصل محدودیتها قوانینی هستند که بر روی ستونهای جدولها اعمال میشوند تا ما بتوانیم بهبود بیشتری در صحت اطلاعات داشته باشیم.
یکی از اولین محدودیتهایی که به طور حتم با آن مواجه شدهاید، محدودیت NOT NULL
است. این محدودیت تضمین میکند که یک ستون حتماً باید مقداری داشته باشد و نمیتواند خالی باشد. این برای مواقعی عالی است که یک داده حیاتی باید همیشه حضور داشته باشد.
یکی دیگر از محدودیتهای مهم UNIQUE
است. این محدودیت باعث میشود تا دادهها در یک ستون هیچگاه تکراری نباشند. این ویژگی به ما اطمینان میدهد که هر رکوردی دارای یک شناسه منحصر به فرد است، و ساختار داده یکتا حفظ میشود.
محدودیت PRIMARY KEY
، ترکیبی از NOT NULL
و UNIQUE
است. این محدودیت کلید اصلی جدول را مشخص میکند و این بدان معنی است که هر جدول حداقل باید یک ستون داشته باشد که بتواند به عنوان کلید اصلی عمل کند.
محدودیت FOREIGN KEY
نیز بسیار کاربردی است و ارتباط بین دو جدول را تعریف میکند. این محدودیت تضمین میکند که یک ستون در یک جدول به یک رکورد معتبر در جدول دیگر اشاره دارد، که کمک به نگهداری یکپارچگی و هماهنگی بین دادهها میکند.
در نهایت، محدودیت CHECK
به ما اجازه میدهد تا شروطی بر روی دادهها قرار دهیم. این به معنی این است که میتوانید براساس یک شرط خاص قبول کنید یا نپذیرید که یک داده خاص وارد شود.
CREATE TABLE Students (
ID INT NOT NULL PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
Email VARCHAR(100) UNIQUE,
Age INT CHECK (Age >= 18),
SchoolID INT,
FOREIGN KEY (SchoolID) REFERENCES Schools(ID)
);
این یک مثال از نحوه تعریف محدودیتها در SQL است.
ID INT NOT NULL PRIMARY KEY
: تضمین میکند که ستون ID
نمیتواند NULL
باشد و باید یکتا باشد.
Name VARCHAR(100) NOT NULL
: ستون Name
باید مقداری داشته باشد و نمیتواند خالی باشد.
Email VARCHAR(100) UNIQUE
: تضمین میکند که مقادیر ستون Email
تکراری نباشند.
Age INT CHECK (Age >= 18)
: شرطی میگذارد که سن دانشجو باید حداقل 18 باشد.
FOREIGN KEY (SchoolID) REFERENCES Schools(ID)
: تضمین میکند که مقدار SchoolID
به یک شناسه معتبر در جدول Schools
اشاره میکند.