آموزش هاپایگاه داده

چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

شاید برای شما هم پیش آمده باشد که بخواهید روی یک فیلد از جدول پایگاه داده خود در SQL SERVER نوعی محدودیت قرار دهید.

به عنوان مثال فرض کنید شما در یک جدول، دو فیلد دارید که نمی‌خواهید مقادیر تکراری در هیچ یک از آنها ذخیره شود، یکی آی دی محصول و دیگری نام انگلیسی محصول برای نمایش در لینک، فیلد ID که در صورت Primary Key بودن، به صورت خودکار مقادیر تکراری را قبول نمی‌کند. اما برای فیلد دیگر چه کنیم؟ با پرعلم در این مقاله همراه باشید تا به شما آموزش دهیم چگونه روی یک فیلد از جدول در SQL قید یا محدودیت هایی قرار دهیم؟

چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

Constraint (قید یا محدودیت) در SQL Server

به طور کلی در SQL Server ما 6 نوع قید یا محدودیت یا Constraint داریم که در این قسمتآن ها را نام می‌بریم و در ادامه هر یک را به صورت جداگانه بررسی خواهیم کرد، پس با ما همراه باشید.

Constraint چیست؟ در SQL SERVER می‌توانیم برای هر فیلد محدودیت هایی قرار دهیم تا مقادیر ورودی در آن فیلد را کنترل کنیم و از ورود مقادیر غیر مجاز در آن فیلد جلوگیری کنیم.

انواع قید ها در SQL SERVER

  1. NOT NULL CONSTRAINT
  2. CHECK CONSTRAINT
  3. UNIT CONSTRAINT
  4. PRIMARY KEY CONSTRAINT
  5. FOREIGN KEY CONSTRAINT
  6. DEFAULT CONSTRAINT

Not Null Constraint و نحوه ساخت آن

این قید همان Allow Null می‌باشد، به معنای آنکه این فید نمی‌تواند خالی باید.

نحوه قرار دادن قید Not Null:

1 – روی جدول خود در sql server management studio راست کلیک کرده و روی گزینه ی Design کلیک کنید:

2 – حال فیلد های جدول را مشاهده می‌کنید که دارای 3 ستون است :

  1. نام فیلد
  2. نوع داده فیلد
  3. Allow Nulls

در فیلد سول یعنی Allow Nulls اگر تیک خورده باشد، یعنی این فیلد می‌تواند خالی باشد، و اگر تیک نخورده باشد یعنی این فیلد نباید خالی باشد:

در این جدول در هنگام افزودن یک محصول، می‌توانیم فیلد نام و رنگ محصول را خالی بگذاریم، اما نمی‌توانیم فیلد ID یا فیلد قیمت را خالی بگذاریم.

Check Constraint و نحوه ساخت آن

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

1 – روی علامت + کنار نام جدول کلیک کنید :

2 – سپس روی آیتم Constraints کلیک راست کرده و روی گزینه New Constraint کلیک کنید :

3 – سپس پنجره ی زیر را مشاهده می‌کنید، نام آن را lessThan1000 قرار دادیم، سپس روی علامت … در کنار گزینه Expression کلیک می‌کنیم:

4 – حال در پنجره ی باز شده عبارت زیر را می‌نویسیم:

5 – سپس این پنجره را OK کرده و پنجره بعدی را نیز می‌بندیم.

اکنون شما با موفقیت یک Check Constraint ساختید که اگر روی آیتم Constraints کلیک راست کرده و New Constraint را بزنید، می‌توانید آن را مشاهده کنید و در صورت نیاز آن را Delete کنید یا ویرایش نمایید.

Unit Constraint و نحوه ساخت آن

وقتی می‌خواهیم در یک فیلد به جز فیلد Primary Key مقادیر تکراری اضافه نشود، از این قید استفاده می‌کنیم.

به عنوان مثال می‌خواهیم در فیلد Name مقدار تکراری وجود نداشته باشد، نحوه ی ساخت و به کار گری آن به شرح زیر است:

1 – ابتدا روی نام جدول کلیک راست کرده و Design آن را باز می‌کنیم.

2 – سپس روی فیلد Name کلیک راست کرده و گزینه ی Indexes / Keys را انتخاب می‌کنیم:

3 – در پنجره ی زیر روی دکمه ی Add کلیک کنید:

4 – پس از کلیک روی گزینه ی Add یک آیتم در پنجره ی سمت چپ اضافه می‌شود که Properties آن را در پنجره ی سمت راست مشاهده می‌کنید:

5 – سپس نام این Constraint را که به صورت پیش فرض IX_TableName است را به نام دلخواه خود تغییر دهید.

6 – سپس در سمت راست یعنی قسمت Propertis فیلد اول یعنی Columns را روی فیلد دلخواه خود قرار دهید. (ما روی PName قرار می‌دهیم.)

7 – حال ما به SQL SERVER دستور دادیم که این محدودیت را روی فیلد PName اجرا کن.

اما چه محدودیتی؟

8 – در زیر گزینه ی Columnsکه در مرحله قبل مشاهده کردید، گزینه ی Is Unique قرار دارد که آن را روی Yes قرار دهید.

9 – و سپس پنجره را ببندید.

اکنون شما با موفقیت یک Unit Constraint برای این فیلد ساختید.

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

کاربرد: اگر شما دو محصول به نام دفتر 100 برگ داشته باشید، اگر این محدودیت را روی دیتابیس خود اعمال نمایید، کابر باید نام های متفاوتی برای این 2 محصول انتخاب کند. در غیر این صورت یعنی اگر این محدودیت را اعمال نکنید، در این صورت ممکن است 2 یا چند محصول با نام دفتر 100 برگ در پایگاه داده ی شما ذخیره شود. که این در ذراز مدت و افزایش تعداد محصولات، خوب نیست.

Primary Key Constraint و نحوه ساخت آن

همانطور که بالاتر نیز گفتیم کلید اصلی یا Primary Key خودش یک Constraint است. و هیچ گاه، کاربر اجازه ی افزودن 2 رکورد تکراری در آن را ندارد.

به عنوان مثال : فرض کنید شما در جدول محصولات، تعداد 100 محصول دارید، حال اگر ID آنها را که کلید اصلی می‌باشد، از نوع Int در نظر گرفته باشید، هیچ گاه نمی‌توانید 2 محصول با شماره یا ID عدد 5 داشته باشید و تنها 1 محصول با شماره 5 وجود دارد که از طریق آن می‌توانید به اطلاعات آن دسترسی داشته باشید:

select *
From tbl_Products
Where ID=5

همانطور که مشاهده می‌کنید، اگر 2 محصول با شماره 5 وجود داشته باشد، این Query به دستی کار نخواهد کرد، پس پایگاه داده شما و برنامه ی شما به مشکل خواهد خورد.

Foreign Key Constraint و نحوه ساخت آن

کلید خارجی یا Foreign Key برای ارتباط و Relationship بین 2 جدول به کار می‌رود. این محدودیت را با مثالی توضیح می‌دهیم:

مثال: فرض کنید 2 جدول دارید. یکی برای محصولات ( Products ) و دیگری برای سفارشات ( Orders ) که شماره محصول در Orders ثبت می‌شود.

به این ترتیب PID  در جدول محصولات کلید اصلی یا Primary Key بوده و در جدول سفارشات کلید خارجی یا Foreign Key می‌باشد.

Default Constraint و نحوه ساخت آن

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

کاربرد :

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

نحوه ساخت:

  1. ابتدا تب Design مربوط به جدول را باز می‌کنیم
  2. روی فیلدی که مدنظر دارید کلیک کنید تا به حالت انتخاب شده درآید.
  3. سپس در قیمت پایین صفحه، مقدار Default Value Or Binding را بر اساس نوعداده ی آن فیلد، قرار دهید:

چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

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

کاربرد های Constraint ها

همانطور که مشاهده کردید، بالاتر برای هریک از محدودیت ها مثالی نوشتیم که بیشتر با کاربرد آنها آشنا شوید. اما در اینجا به صورت خلاصه کاربرد هایی از Constraint ها بیان می‌کنیم:

کابرد Not Null Constraint :

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

کاربرد Check Constraint :

فرض کنید که در سایت یا برنامه ی شما اجازه ی ثبت نام افراد زیر 20 سال وجود ندارد، در این صورت می‌توانید از این قید برای فیلد Age استفاده نمایید.

کاربرد Unit Constraint :

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

موارد دیگر را نیز بالاتر مورد بحث قرار دادیم و کاربر های آنها را بررسی کردیم.


امیدوارم این مقالهبرای شما عزیزان مفید بوده باشد.

لطفا نظر خود را با ما در میان بگذارید

09031887840

چگونه روی فیلدهای جدول SQL محدودیت قرار دهیم؟

, , , , , , , , , , , ,
نوشتهٔ پیشین
آیا من خوشگلم؟
نوشتهٔ بعدی
آیا کسب و کار من به وب سایت نیاز دارد؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

*

code

فهرست