📞 02166056460

محدودیت Check در sql

10 / 10
از 1 کاربر
بازگشت به لیست مقالات » | شنبه 2 آبان 1405 در ساعت 15 و 32 دقیقه | نظرات کاربران ( 2 )
آموزش پایگاه داده

محدودیت CHECK در SQL؛ راهنمای کامل تعریف و مدیریت

اعتبارسنجی داده‌ها هنگام درج و ویرایش رکوردها
۰۱

محدودیت CHECK در SQL چیست؟

محدودیت CHECK در SQL قانونی است که برای کنترل مقادیر مجاز یک ستون یا ترکیبی از چند ستون تعریف می‌شود. پایگاه داده هنگام درج یا به‌روزرسانی اطلاعات، شرط را بررسی می‌کند و در صورت برقرار نبودن آن، عملیات را نمی‌پذیرد.

برای نمونه، اگر مقدار یک ستون باید همیشه بزرگ‌تر از ۱۰ باشد، می‌توان شرطی تعریف کرد تا ورود مقدار نامعتبر با خطا روبه‌رو شود. این روش اعتبارسنجی را در خود پایگاه داده انجام می‌دهد و از ذخیره شدن اطلاعاتی که با قواعد سیستم سازگار نیستند جلوگیری می‌کند.

برای آشنایی بیشتر با این مفهوم می‌توانید مطلب محدودیت Check یا محدودیت خاص در اس کیو ال را هم ببینید.

🛡️

اعتبارسنجی مقدار

کنترل مقدار هر ستون پیش از ثبت در جدول.

🔒

قواعد کسب‌وکار

اعمال شرط‌های موردنیاز برنامه در پایگاه داده.

✅

کاهش داده نامعتبر

جلوگیری از ذخیره مقدار ناسازگار با شرط تعریف‌شده.

مطالعه بیشتر

با محدودیت CHECK بیشتر آشنا شوید

تعریف شرط برای ستون‌ها و جدول‌ها به شما کمک می‌کند قواعد داده را یکپارچه‌تر مدیریت کنید.

مشاهده آموزش محدودیت CHECK ←

۵ نکته مهم درباره محدودیت CHECK در SQL

۰۲

۱. شرط را دقیق و روشن تعریف کنید

عبارت CHECK باید دقیقاً همان قاعده‌ای را بیان کند که می‌خواهید روی داده اجرا شود. برای نمونه، شرط P_Id > 0 مقدارهای صفر و منفی را رد می‌کند، اما مقدارهای مثبت را می‌پذیرد. پیش از افزودن شرط، مشخص کنید مرزهای مجاز شامل خود مقدار مرزی هستند یا نه.

مثلاً اگر امتیاز باید از صفر تا صد باشد، شرط مناسب می‌تواند Score >= 0 AND Score <= 100 باشد. استفاده از عملگرهای مناسب مانند >= به جای > تعیین می‌کند که مقدار صفر هم قابل ثبت باشد یا خیر.

۰۳

۲. محدودیت را روی ستون یا جدول قرار دهید

وقتی شرط فقط یک ستون را بررسی می‌کند، معمولاً تعریف محدودیت در کنار همان ستون خوانایی بیشتری دارد. برای مثال، اگر شناسه باید مثبت باشد، شرط را می‌توان هنگام تعریف ستون نوشت.

اگر شرط به چند ستون وابسته است، محدودیت سطح جدول انتخاب مناسب‌تری است. برای نمونه، می‌توان بررسی کرد که شهر ثبت‌شده فقط در صورت برقرار بودن یک شرط دیگر پذیرفته شود. انتخاب محل تعریف، به دامنه شرط و شیوه نگهداری ساختار جدول بستگی دارد.

۰۴

۳. نام‌گذاری محدودیت را جدی بگیرید

اگر برای محدودیت نام مشخصی تعیین نکنید، ممکن است سیستم نامی خودکار بسازد. این نام‌ها هنگام نگهداری جدول یا حذف و تغییر شرط، خوانایی کمتری دارند. نامی مانند chk_Person یا chk_Score_Range ارتباط محدودیت با جدول یا قاعده را روشن می‌کند.

برای مثال، در جدولی که چند شرط مختلف دارد، نام‌هایی توصیفی به شما کمک می‌کنند سریع‌تر محدودیت مربوط به بازه امتیاز را پیدا کنید. بهتر است یک الگوی نام‌گذاری ثابت در پروژه داشته باشید و آن را در جدول‌های مختلف رعایت کنید.

۰۵

۴. CHECK را با NOT NULL اشتباه نگیرید

محدودیت CHECK برای ارزیابی یک شرط منطقی به کار می‌رود، اما به‌تنهایی همیشه جایگزین NOT NULL نیست. در بسیاری از سیستم‌های پایگاه داده، اگر مقدار ستون تهی باشد، نتیجه بررسی شرط می‌تواند نامشخص باشد و الزاماً مانند یک مقدار نامعتبر رد نشود.

برای نمونه، اگر سن باید وارد شود و هم‌زمان در بازه مجاز باشد، ستون را با NOT NULL تعریف کنید و محدودیت CHECK را نیز برای کنترل بازه به کار ببرید. این دو قاعده در کنار هم، هم وجود مقدار و هم معتبر بودن آن را بررسی می‌کنند.

۰۶

۵. شرط را با داده‌های موجود آزمایش کنید

پیش از افزودن محدودیت به جدولی که از قبل داده دارد، رکوردهای موجود را بررسی کنید. اگر داده‌ای با شرط جدید سازگار نباشد، افزودن محدودیت ممکن است با خطا روبه‌رو شود یا نیازمند پاک‌سازی و اصلاح اطلاعات باشد.

فرض کنید قرار است مقدار همه رکوردهای یک ستون مثبت باشد. ابتدا مقدارهای صفر و منفی را پیدا و تعیین تکلیف کنید، سپس شرط را اضافه کنید. این کار احتمال اختلال در تغییر ساختار جدول را کاهش می‌دهد و از حذف ناخواسته داده‌ها جلوگیری می‌کند.

۳ کاربرد
بازه، مقدار مجاز و سازگاری ستون‌ها
۲ سطح
ستون و جدول
۱ قاعده
کنترل در پایگاه داده
۰۷

تعریف محدودیت CHECK هنگام ساخت جدول

برای افزودن CHECK هم‌زمان با ساخت جدول، شرط را در تعریف ستون یا در بخش محدودیت‌های جدول قرار دهید. نمونه زیر نشان می‌دهد که چطور می‌توان مقدار شناسه را بزرگ‌تر از صفر نگه داشت. در این مثال، نام ستون و نوع داده نیز در دستور مشخص شده است.

CREATE TABLE Persons
(
    P_Id int NOT NULL CHECK (P_Id > 0),
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

در این نمونه، CHECK در کنار ستون P_Id آمده و شرط فقط همان ستون را ارزیابی می‌کند. کلیدواژه NOT NULL نیز مشخص می‌کند که شناسه نباید بدون مقدار باشد؛ بنابراین، دو قاعده متفاوت برای یک ستون تعریف شده‌اند.

۰۸

تعریف شرط برای چند ستون

برای شرطی که بیش از یک ستون را بررسی می‌کند، از محدودیت سطح جدول استفاده کنید. دستور زیر محدودیتی با نام مشخص می‌سازد و دو بخش از اطلاعات رکورد را هم‌زمان ارزیابی می‌کند.

CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CONSTRAINT chk_Person
        CHECK (P_Id > 0 AND City = 'Sandnes')
);

در این مثال، هر دو شرط باید برقرار باشند تا رکورد پذیرفته شود: شناسه باید مثبت باشد و مقدار ستون شهر باید با مقدار تعیین‌شده مطابقت کند. هنگام طراحی شرط‌های چندستونی، توجه کنید که تغییر هر یک از ستون‌های مرتبط نیز می‌تواند باعث رد عملیات به‌روزرسانی شود.

۰۹

افزودن محدودیت CHECK پس از ساخت جدول

اگر جدول از قبل ساخته شده باشد، می‌توانید با دستور ALTER TABLE محدودیت تازه‌ای اضافه کنید. نمونه زیر یک شرط ساده برای مثبت بودن شناسه ایجاد می‌کند:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person_Id
CHECK (P_Id > 0);

برای اعمال شرط روی چند ستون نیز عبارت منطقی را در محدودیت قرار دهید. نام‌گذاری صریح باعث می‌شود در آینده، شناسایی و مدیریت همین قاعده ساده‌تر باشد:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person
CHECK (P_Id > 0 AND City = 'Sandnes');

در برخی نسخه‌ها یا سیستم‌های پایگاه داده، گزینه‌هایی برای بررسی داده‌های موجود هنگام افزودن محدودیت وجود دارد. پیش از اجرای دستور در محیط عملیاتی، مستندات همان سیستم و پیام‌های خطا را بررسی کنید؛ نحو دقیق دستورات ممکن است بین محصولات متفاوت باشد.

اشتباهات رایج هنگام استفاده از CHECK

۱۰

نادیده گرفتن داده‌های قبلی

اگر جدول داده‌های ناسازگار داشته باشد، افزودن شرط جدید می‌تواند موفق نشود. پیش از اعمال تغییر، داده‌ها را با همان شرط بررسی و موارد ناسازگار را اصلاح کنید. بهتر است این کار ابتدا در محیط آزمایشی انجام شود.

۱۱

استفاده از نام‌های نامفهوم

نام‌های خودکار یا نامرتبط، پیدا کردن محدودیت موردنظر را دشوار می‌کنند. برای هر CHECK نامی انتخاب کنید که هدف شرط یا ستون‌های وابسته را توضیح دهد؛ این کار نگهداری و عیب‌یابی پایگاه داده را آسان‌تر می‌کند.

۱۲

فرض کردن یکسان بودن دستورها در همه پایگاه‌های داده

جزئیات دستورهای تغییر یا حذف محدودیت در محصولات مختلف پایگاه داده یکسان نیست. برای نمونه، در SQL Server حذف محدودیت CHECK با دستور DROP CONSTRAINT انجام می‌شود؛ اما برخی منابع قدیمی یا محصولات دیگر ممکن است نحو متفاوتی نشان دهند.

ALTER TABLE Persons
DROP CONSTRAINT chk_Person;

پیش از اجرای دستور حذف، نام دقیق محدودیت و سیستم مدیریت پایگاه داده را بررسی کنید. حذف شرط، کنترل داده‌های جدید را متوقف می‌کند و بهتر است اثر آن بر قواعد برنامه مشخص باشد.

۱۳

استفاده از CHECK برای همه نوع اعتبارسنجی

CHECK برای شرط‌هایی مناسب است که با مقادیر همان رکورد قابل ارزیابی باشند. برای اعتبارسنجی‌هایی که به جدول‌های دیگر، دسترسی کاربر یا منطق پیچیده برنامه وابسته هستند، ممکن است به ابزارهای دیگری نیاز داشته باشید. انتخاب روش باید با ساختار داده و نیازهای سامانه هماهنگ باشد.

۱۴

تغییر یا حذف محدودیت CHECK

برای تغییر شرط، معمولاً باید محدودیت فعلی را با نام آن حذف و سپس نسخه تازه را اضافه کنید. دستور حذف به سیستم پایگاه داده وابسته است؛ در SQL Server می‌توان از الگوی زیر استفاده کرد:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person;

ALTER TABLE Persons
ADD CONSTRAINT chk_Person
CHECK (P_Id > 0 AND City = 'Sandnes');

اگر فقط قصد حذف محدودیت را دارید، کافی است دستور افزودن را اجرا نکنید. پیش از تغییر در محیط اصلی، پیامدهای آن را بررسی کنید و مطمئن شوید برنامه یا فرایند دیگری به اعتبارسنجی فعلی وابسته نیست.

مزایای محدودیت CHECK

کنترل مطمئن‌تر داده‌ها

قواعد روشن در سطح پایگاه داده
۰۱
اعتبار

کاهش داده نامعتبر

شرط پیش از ثبت داده ارزیابی می‌شود.

۰۲
یکپارچگی

اجرای قاعده مشترک

قواعد در خود پایگاه داده نگهداری می‌شوند.

۰۳
انعطاف

کنترل چند ستون

شرط می‌تواند چند ستون یک رکورد را بسنجد.

۰۴
نگهداری

مدیریت با نام مشخص

نام‌گذاری روشن، یافتن محدودیت را آسان می‌کند.

۰۵
پایداری

اعتبارسنجی متمرکز

شرط در لایه پایگاه داده اعمال می‌شود.

۱۵

جمع‌بندی: چه زمانی از محدودیت CHECK استفاده کنیم؟

محدودیت CHECK در SQL راهی کاربردی برای تعریف شرط روی یک ستون یا چند ستون مرتبط است. با استفاده از آن می‌توانید بازه‌های مجاز را مشخص کنید، مقدارهای ناسازگار را رد کنید و بخشی از قواعد داده را در پایگاه داده نگه دارید.

برای استفاده درست، شرط را روشن بنویسید، محدودیت را نام‌گذاری کنید، تفاوت CHECK و NOT NULL را در نظر بگیرید و داده‌های قبلی را پیش از اعمال تغییر بررسی کنید. همچنین دستورهای افزودن و حذف را با توجه به سیستم پایگاه داده خود انتخاب کنید.

اعتبارسنجی پایگاه داده یکی از بخش‌های مهم ساخت سامانه‌های قابل اتکاست. اگر برای کسب‌وکار خود به وب‌سایت نیاز دارید، درباره طراحی سایت و نیازهای فنی پروژه نیز اطلاعات بیشتری کسب کنید.

  • پیش از ساخت: مشخص کنید شرط به یک ستون مربوط است یا چند ستون.
  • هنگام نام‌گذاری: نامی انتخاب کنید که هدف محدودیت را توضیح دهد.
  • پیش از تغییر جدول: داده‌های موجود را با شرط جدید تطبیق دهید.
  • هنگام حذف یا تغییر: نحو مختص سیستم پایگاه داده را بررسی کنید.
نکته توضیح کوتاه درجه اهمیت
دقت شرط مرزها و عملگرهای منطقی را درست انتخاب کنید. زیاد
سطح تعریف برای یک ستون یا چند ستون، محل مناسب را برگزینید. زیاد
نام‌گذاری نام روشن، مدیریت محدودیت را ساده‌تر می‌کند. متوسط
داده‌های قبلی پیش از افزودن شرط، ناسازگاری‌های موجود را بررسی کنید. زیاد
سازگاری دستورات نحو تغییر و حذف را با پایگاه داده خود تطبیق دهید. زیاد

قواعد داده را پیش از ذخیره‌سازی مشخص کنید

با تعریف دقیق محدودیت CHECK، کنترل مقدارهای مجاز را به پایگاه داده بسپارید و پیش از اجرا، شرط و داده‌های موجود را بررسی کنید.

مطالعه راهنمای CHECK ←

سوالات متداول محدودیت CHECK در SQL

محدودیت CHECK در SQL چه کاری انجام می‌دهد؟

CHECK شرطی را روی مقدار یک ستون یا چند ستون اعمال می‌کند. هنگام درج یا به‌روزرسانی رکورد، پایگاه داده شرط را ارزیابی می‌کند و در صورت ناسازگاری مقدار، عملیات را رد می‌کند.

آیا CHECK را می‌توان برای چند ستون تعریف کرد؟

بله. می‌توانید شرط را در سطح جدول تعریف کنید و در آن از چند ستون استفاده کنید. برای نمونه، یک شرط می‌تواند مثبت بودن شناسه و مقدار مشخصی برای شهر را هم‌زمان بررسی کند.

چطور پس از ساخت جدول CHECK اضافه کنیم؟

معمولاً از دستور ALTER TABLE همراه با ADD CONSTRAINT استفاده می‌شود. نام و عبارت شرط را در دستور مشخص کنید و پیش از اجرا، داده‌های موجود را با شرط جدید تطبیق دهید.

تفاوت CHECK و NOT NULL چیست؟

CHECK یک شرط منطقی را کنترل می‌کند، در حالی که NOT NULL وجود مقدار را الزامی می‌سازد. اگر ستون هم باید مقدار داشته باشد و هم از یک قاعده پیروی کند، ممکن است به هر دو محدودیت نیاز داشته باشید.

چگونه محدودیت CHECK را در SQL Server حذف کنیم؟

در SQL Server از دستور ALTER TABLE و عبارت DROP CONSTRAINT همراه با نام محدودیت استفاده می‌شود. نحو حذف ممکن است در سیستم‌های پایگاه داده دیگر متفاوت باشد، پس مستندات محصول خود را بررسی کنید.

ارسال نظر و نظرات ثبت شده
سعیدی :
1 0
مرسی عالی بود خیلی کمکم کرد
shima :
7 0
عالیه مطالبتون توی sql . خلاصه و مفید
سایر مقالات
آموزش View در sql آموزش view در sql آموزش پایگاه داده ساخت، استفاده و مدیریت جدول‌های مجازی در SQL ...
فیلد identity در Sql فیلد identity در SQL چیست و چگونه از آن استفاده کنیم؟ ⭐ فیلد identity در SQL فیلد identity د ...
محدودیت Unique در sql SQL UNIQUE Constraint برای جلوگیری از ثبت مقدارهای تکراری در ستون‌های جدول به کار می‌رود. ...
محدودیت NOT NULL در sql آموزش پایگاه داده محدودیت NOT NULL در SQL چیست؟ آموزش کاربردی و مثال با تعریف این محدودیت، ...
محدودیت Check در sql آموزش پایگاه داده محدودیت CHECK در SQL؛ راهنمای کامل تعریف و مدیریت اعتبارسنجی داده‌ه ...
محدودیت Default در اسکیوال آموزش SQL محدودیت SQL DEFAULT؛ مقدار پیش فرض در SQL نحوه تعریف، تغییر و حذف مقدار پیش فرض ...
محدودیت Foreign Key در sql آموزش SQL کلید خارجی در SQL چیست؟ راهنمای کامل Foreign Key تعریف، کاربرد، ساخت و حذف محدود ...
محدودیت Primary Key در sql آموزش پایگاه داده محدودیت Primary Key در SQL؛ تعریف و کاربرد کلید اصلی راهنمای تعریف، استف ...
ایجاد محدودیت برای فیلد ها (Constraints) آموزش پایگاه داده محدودیت های SQL چیست و چگونه از آنها استفاده کنیم؟ راهنمای کاربردی آشنای ...
دستور alter table در sql آموزش پایگاه داده دستور ALTER TABLE در SQL؛ راهنمای افزودن، حذف و تغییر ستون آشنایی با ساخ ...
تغییر نام فیلد در یک جدول با استفاده از دستور sql آموزش SQL Server تغییر نام ستون در SQL Server با دستور sp_rename نحوه تغییر نام فیلد، مثال ...
دستور Create Index در sql آموزش SQL دستور CREATE INDEX در SQL چیست؟ آموزش ساخت اندیس، انتخاب ستون مناسب و بهبود سرعت ...
دستور Drop در sql دستور DROP در SQL؛ آموزش حذف جدول، اندیس و پایگاه داده 💡آشنایی با حذف ساختارها در SQL دستور ...
دستور Create Table در sql دستور CREATE TABLE در SQL؛ راهنمای ایجاد جدول در پایگاه داده 💡آشنایی با ساخت جدول دستور CRE ...
دستور CREATE DATABASE در sql دستور CREATE DATABASE در SQL چیست؟ 💡آشنایی با ساخت پایگاه داده برای ایجاد یک پایگاه داده ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید