%45 تخفیف، با کد daneshjoo روی تمام آموزش ها، بمناسبت روز دانشجو
زمان باقی مانده
سبد (0)

تبلیغات

محدودیت unique در SQL

محدودیت UNIQUE

Wiki

محدودیت UNIQUE تعیین می کند هر رکوردی در جدول یکتاست.

محدودیت های UNIQUE و PRIMARY KEY باهم یکتایی یک ستون یا مجموعه ای از ستون ها را تضمین می کنند.

محدودیت PRIMARY KEY به طور خودکار محدودیت UNIQUE را در خود دارد.

توجه داشته باشید که می توانید چندین محدودیت UNIQUE را در یک جدول داشته باشید اما تنها یک PRIMARY KEY در جدول می توانید داشته باشید.


محدودیت UNIQUE در دستور CREATE TABLE

Wiki

عبارت زیر یک محدودیت UNIQUE را روی ستون P_Id هنگام ایجاد جدول Persons به وجود می آورد.

در MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

درSQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

برای تعریف محدودیت UNIQUE روی ستون های چندگانه (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید (منظور داده های چند ستون روی هم رفته منحصر به فرد باشند):

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

محدودیت UNIQUE در دستور ALTER TABLE

Wiki

برای ایجاد محدودیت UNIQUE روی ستون P_Id هنگامی که جدول قبلا ایجاد شده از دستور زیر استفاده می کنیم.

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id)

 برای تعریف محدودیت UNIQUE روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید (منظوراین است که  داده های چند ستون روی هم رفته منحصر به فرد باشند):

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

حذف محدودیت UNIQUE

Wiki

برای حذف محدودیت UNIQUE از دستور زیر استفاده می کنیم.

در MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

در SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.

دیدگاه‌ها  

+2 # م.مح 1396-02-04 00:22
سلام
میشه با یه مثال تفاوت unique و primarykey رو توضیح بدید؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # امیر پهلوان صادق 1396-02-04 08:37
سلام، در زیر تفاوت بین Primary Key و Unique Key آورده شده است:
Primary Key:
1- هر جدول تنها یک Primary Key می تواند داشته باشد.
2- در اکثر پایگاه داده ها، مثل SQL Server و MySQL اجازه وارد کردن مقدار NULL برای فیلد Primary Key وجود ندارد.
3- Primary Key منحصر بفرد بودن تمام مقادیر فیلد را تضمین می کند.
4- اطلاعات جدول بر اساس Primary Key مرتب می شوند. یعنی اگر برای نمایش اطلاعات از دستور Select استفاده کنیم و قسمت order by را نیاوریم، اطلاعات بصورت پیشفرض براساس فیلد Primary Key مرتب می شوند.
Unique Key
1- هر جدول بیش از یک unique key می تواند داشته باشد.
2- اجازه وارد کردن مقدار NULL برای unique key وجود دارد.
3- با وجود چندین مقدار NULL برای فیلد unique key نمی توان منحصر بفرد بودن مقادیر را تضمین کرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # امیدح 1395-07-29 01:34
سلام
فرضا ما در دستور ساخت جدول و با این خط کد
P_Id int NOT NULL UNIQUE
یک ستون p_id یونیک تعریف کردیم
حالا اگر بخوایم محدودیت یونیک فیلد مذکور رو برداریم باید چکار کنیم؟
با تشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1395-07-29 13:00
با سلام.
کد زیر رو نگاه کنید:
ALTER TABLE tablename
DROP INDEX uc_PersonID
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # امیر نساحی 1395-04-12 02:12
سلام در هنگام ساخت جدول ما برای یک ستون بدون اینکه به محدودیت آن اسم بدهیم UNIQUE تعریف کرده ایم. مثلا ستونی به نام ID داریم و در حین ساخت جدول فقط نوشته ایم
UNIQUE (ID)
حال تصمیم گرفته ایم آن را DROP کنیم اما برای DROP ما اسم محدودیت INDEX-NAME نداریم، در این حالت چگونه از drop استفاده کنیم؟
با تشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1395-04-14 22:34
سلام.
می‌تونی از دستور زیر استفاده کنی:
DROP INDEX field_Name ON Table_Name
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # dada 1396-02-12 20:53
field_name در اینجا به چه چیزی اشاره دارد
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # امیر پهلوان صادق 1396-02-15 21:59
field_Name به نام فیلد اشاره دارد...!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # #حامد# 1395-03-07 00:06
سلام
عبارت uc_PersonID اسم CONSTRAINT است و میشه به جاش عبارت دلخواه دیگه ای گذاشت
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # saeed 1394-11-17 11:18
با سلام و عرض خسته نباشید.
منظور از کلمه uc_PersonID در مثال های بالا چیه؟؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # مهرداد صلاحی 1394-11-17 21:10
با سلام و تشکر.
این کلمه صرفا یک نام اختیاری برای محدودیت مورد نظر است. در واقع uc سرنام واژه های Unique Constraint است و در ادامه برای قابل فهم تر شدن آن از نام فیلد در ادامه استفاده کرده ایم.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # hekmati 1394-05-03 08:27
ممنون از سایت فوق العاده شما .
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی SQL

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

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