خانه SQL Server تعریف محدودیت (Constraint) در SQL Server + بررسی انواع و کاربردهای آن ها SQL Server دستورات SQL نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۱۵ بهمن ۱۴۰۲ آخرین بروزرسانی: 07 آذر 1403 زمان مطالعه: 10 دقیقه ۴.۳ (۱۱) محدودیت در SQL Server ، نقش کلیدی و بنیادی در حفظ یکپارچهسازی و سازگاری پایگاههای داده دارد. با اعمال Constraint روی جداول، تضمین میشود که دادهها از شرایط و قوانین خاصی پیروی میکنند. ازجمله دستور Insert و دستور Update و دستور Select پرداخته شد. اکنون در این مطلب، انواع Constraint در SQL Server و کاربردهای هر یک در کوئرینویسی بههمراه خروجی تشریح خواهند شد. محدودیت در SQL Server چیست؟ محدودیت ها (Constraints) در آموزش جامع SQL Server، قوانینی محسوب میشوند که میتوان آنها را روی نوع دادههای یک جدول اعمال کرد؛ این یعنی، به واسطه Constraint ها امکان ایجاد محدودیت خاصی روی نوع داده قابل ذخیرهسازی در یک ستون مشخص وجود دارد. به این ترتیب، یکپارچگی (Integrity) و دقت (Accuracy) دادهها تضمین میشود و از ورود دیتای ناسازگار به جداول پایگاه داده جلوگیری خواهد شد. مزایای تعریف محدودیت در SQL Server تعریف محدودیت در SQL Server ، مزیتهای زیر را برای پایگاه داده شما بههمراه دارد: جلوگیری از درج دادههای غیرمرتبط: شما میتوانید با تعریف کردن محدودیت در SQL Server ، از درج دادههای نادرست یا ناسازگاری به جدول جلوگیری کنید. بدین طریق، دقت و قابل اکتفا بودن اطلاعات تضمین میشود. اعمال قوانین تجاری: بااستفاده از Constraint ها میتوان قوانین خاص کسب و کار را تعریف کرد. در چنین شرایطی، مطمئن خواهید شد که دادههای جداول دیتابیس از قوانین تجاری پیروی میکنند. وجود این سطح از سازگاری، برای حفظ یکپارچگی دادهها و کاهش خطا حائز اهمیت است. دادههای استانداردشده: با اعمال Constraint در SQL Server ، تطبیقپذیری در پایگاه داده تضمین میشود و به دنبال آن، روند دستکاری و تحلیل دادهها سهولت مییابد. حفظ یکپارچگی ارجاعی: محدودیت کلید خارجی (Foreign Key) جداول فرزند را به جداول والد لینک میکند؛ به همین دلیل، Referential Integrity آنها حفظ خواهد شد. علاوهبراین، با تعریف کردن محدودیت Unique ، از وجود دادههای تکراری جلوگیری میشود. بنابراین، افزونگی (Redundancy) کمینهشده و هر رکورد، نمایانگر دادههای منحصربهفردی خواهد بود. خودکارسازی اعتبارسنجی دادهها: با تعریف Constraint در SQL Server ، دادهها بهصورت خودکار در زمان درج و آپدیت، اعتبارسنجی خواهند شد و شما دیگر به بررسی Manual آنها نیاز ندارید. موارد فوق، بر اهمیت تعریف محدودیت در SQL Server دلالت دارند. بهطور کلی، وجود Constraint ها، مزیتهایی همچون بهبود کیفیت، سازگاری دادهها و همچنین، تسهیل مدیریت دیتا را بههمراه دارد. پیشتر به بررسی پرکاربردترین دستورات SQL Server، انواع Constraint در SQL Server رایجترین نوع های محدودیت در SQL Server به شرح زیر است: ۱- محدودیت NOT NULL محدودیت NOT NULL در SQL Server ، از خالی یا اصطلاحاً Null بودن یک ستون خاص از جدول پایگاه داده جلوگیری میکند. به کمک این نوع از محدودیت، مطمئن میشوید که تمامی رکوردهای آن ستون خاص حاوی مقدار باشند. میتوان محدودیت NOT NULL را بهنوعی شبیه به شرایط کلید اصلی (Primary Key) در نظر داشت که مقدار آن نمیتواند Null باشد. توجه کنید که این دو، مفاهیم مختلفی هستند و برای ملموستر شدن محدودیتها از این مثال استفاده شد. ایجاد جدول جدید و اعمال محدودیت NOT NULL معمولاً محدودیت در SQL Server بههمراه عبارت Create Table مورد استفاده قرار میگیرد. بهصورت پیشفرض، ستونهای جدول میتوانند مقدار Null داشته باشند. برای درک اهمیت محدودیت NOT NULL ، به مثال زیر توجه کنید: در کوئری پایین، محدودیت NOT NULL بههمراه ساخت یک جدول جدید مورد بررسی قرار میگیرد. CREATE TABLE NewProducts ( ProductID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ProductName NVARCHAR(40) NOT NULL, SupplierID INT, UnitPrice DECIMAL(10,2), Discontinued BIT); با اجرای کوئری فوق، یک جدول تحت عنوان NewProducts ایجاد میشود. همانطور که در تصویر زیر قابل مشاهده است، دو ستون ProductID و ProductName نمیتوانند مقدار Null داشته باشند. توجه کنید که در این مثال، ProductID بهعنوان کلید اصلی جدول انتخاب شده است؛ بنابراین، مقدار آن بهصورت ضمنی NOT NULL درنظر گرفته خواهد شد. افزودن محدودیت NOT NULL به یک ستون موجود شما میتوانید با استفاده از ALTER TABLE و ALTER Column تغییرات موردنیاز روی جدول و ستون آن را لحاظ کنید. با اجرای دوره کوئری نویسی پیشرفته، این تضمین به وجود میآید که تمامی رکوردهای کارمندان، منحصربهفرد هستند و نمیتوانند مقدار NULL بگیرند. ALTER TABLE Employees ALTER COLUMN EmployeeID INT NOT NULL; توجه کنید که EmployeeID کلید اصلی این جدول است. ایجاد محدودیت چندستونی با NOT NULL Constraint شما میتوانید با اعمال محدودیت در SQL Server ، برای چند ستون جدول Constraint تعیین کنید. با اجرای کوئری زیر، یک جدول تحت عنوان OrdersArchive در پایگاه داده ساخته میشود. در این جدول، ستونها نمیتوانند مقدار Null بگیرند. ضمن اینکه یک «کلید اصلی ترکیبی» (PK_OrdersArchive) روی دو ستون این جدول تعریف شده است. این شرایط تضمین میکند که هر رکورد نشاندهنده یک سفارش یونیک است. CREATE TABLE OrdersArchive ( OrderID INT NOT NULL, CustomerID NCHAR(5) NOT NULL, EmployeeID INT NOT NULL, OrderDate DATETIME NOT NULL, CONSTRAINT PK_OrdersArchive PRIMARY KEY (OrderID, CustomerID) ); همانطور که در تصویر زیر مشاهده میکنید، این جدول با شرایط مذکور در پایگاه داده ایجاد شده است. ۲- محدودیت UNIQUE اگر محدودیت Unique روی یک جدول دیتابیس اعمال شود، خیال شما از بابت منحصربهفرد بودن مقادیر یک یا چند ستون خاص راحت است. به بیان دیگر، امکان درج دادههای تکراری یا اصطلاحاً Duplicated Data وجود ندارد. در مثال زیر، یک جدول به نام NewCustomers ایجاد خواهیم کرد؛ به طوری که CustomerID کلید اصلی و Email دارای محدودیت نوع Unique باشد. CREATE TABLE NewCustomers ( CustomerID INT PRIMARY KEY, Email NVARCHAR(50) UNIQUE ); استفاده از این نوع محدودیت در SQL Server ، این تضمین را ایجاد میکند که دو مشتری یک آدرس ایمیل یکسان نداشته باشند. ۳- محدودیت PRIMARY KEY Primary Key Constraint نوعی محدودیت در SQL Server است که نشان میدهد هر رکورد از جدول یکتا است. به واسطه Primary Key Constraint، یکپارچگی دیتا و استخراج دادهها بهصورت کارآمد انجام خواهند شد. توجه کنید که هر جدول، تنها امکان داشتن یک کلید اصلی دارد و این کلید نباید تکراری یا NULL باشد. افزودن محدودیت Primary Key در زمان ساخت جدول CREATE TABLE CustomersTable ( CustomerID INT PRIMARY KEY, CustomerName NVARCHAR(50), Email NVARCHAR(100) ); با اجرای کوئری فوق، یک جدول به نام CustomersTable ایجاد میشود؛ در این جدول، CustomerID بهعنوان کلید اصلی تعریف شده است. به این ترتیب، یک محدودیت Primary Key روی این جدول تعیین شد. اعمال محدودیت کلید اصلی روی یک جدول موجود ALTER TABLE Orders ADD CONSTRAINT PK_Orders PRIMARY KEY (OrderID); شما میتوانید این نوع محدودیت در SQL Server را روی یکی از جداول فعلی دیتابیس خود اعمال کنید. با اجرای کوئری بالا، روی ستون OrderID از جدول سفارشها (Orders)، محدودیت PK لحاظ خواهد شد. ۴- محدودیت FOREIGN KEY محدودیت کلید خارجی (Foreign Key) نقش بسزایی در حفظ یکپارچگی ارجاعی میان جداول دیتابیس دارا است. به واسطه این نوع از محدودیت در SQL Server ، ارتباط میان دو جدول، با ارجاع به کلید اصلی در یک جدول و یک یا چند ستون در جدول دیگر امکانپذیر خواهد شد. اگر کوئری فوق را اجرا کنید، یک جدول به نام OrderTable ایجاد میشود که در آن OrderID بهعنوان کلید اصلی، یکتا است. OrderID ازطریق کلید خارجی CustomerID به جدول Cutomers متصل میشود. به این ترتیب، این اطمینان به وجود میآید که هر سفارش به یک مشتری حقیقی ارجاع داده خواهد شد. CREATE TABLE OrderTable ( OrderID INT PRIMARY KEY, CustomerID INT FOREIGN KEY REFERENCES Customers(CustomerID) ); ۵- محدودیت CHECK محدودیت Check در SQL Server یک قانون محسوب میشود که مقادیر مجاز برای یک یا چند ستون جدول را تعیین میکند. این Constraint، سازگاری و دقت در دیتابیس را بهبود میبخشد. به کوئری زیر توجه کنید: CREATE TABLE ProductsTable ( ProductID INT PRIMARY KEY, UnitPrice DECIMAL(18, 2) CHECK (UnitPrice > 0), UnitsInStock INT CHECK (UnitsInStock >= 0) ); پس از اجرای این Query، یک جدول به نام ProductsTable ایجاد میشود؛ قسمت آخر این کوئری، بررسی میشود که UnitPrice بزرگتر از صفر و UnitsInStock بزرگتر یا مساوی صفر باشد. این موضوع ازطریق محدودیت Check اعمال شده است. ۶- محدودیت DEFAULT فرض کنید محدودیت Default روی یک ستون از جدول دیتابیس اعمال شده و شما یک رکورد به آن اضافه کردهاید. در چنین شرایطی، یک مقدار پیشفرض برای آن ستون وجود خواهد داشت. با کمک این محدودیت در SQL Server ، اطمینان خواهید داشت که مقادیر ستون مربوطه سازگار هستند و یکپارچگی دادهها حفظ میشود. ALTER TABLE OrderDetails ADD CONSTRAINT DF_Quantity DEFAULT 1 FOR Quantity; در مثال فوق، محدودیت Default به نام DF_Quantity برای جدول OrderDetails افزوده میشود؛ در این محدودیت، عدد یک بهعنوان مقدار پیشفرض برای ستون Quantity در نظر گرفته شده است. سخن پایانی محدودیت ها در SQL Server به شما کمک خواهند کرد تا انسجام، امینت و تطبیقپذیری دادههای خود در دیتابیس را بهبود دهید. در این مقاله، به بررسی انواع Constraint در SQL Server پرداختیم و شما با تعدادی از موارد استفاده آنها آشنا شدید. حال با شناخت هرکدام، آیا میتوانید مثالهای دیگری از کاربرد انواع Constraint نام ببرید؟ ما در نیک آموز منتظر نظرات ارزشمند شما درباره این مقاله در بخش نظرات هستیم. چه رتبه ای میدهید؟ میانگین ۴.۳ / ۵. از مجموع ۱۱ اولین نفر باش دانلود مقاله تعریف محدودیت (Constraint) در SQL Server + بررسی انواع و کاربردهای آن ها فرمت PDF 10 صفحه حجم 0/5 مگابایت دانلود مقاله معرفی نویسنده مقالات 401 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول ایمان باقری آموزش کوئری نویسی در sql server 2.190.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ