یادگیری مفاهیم یونیک در SQL

sql unique constraint tutorial
20 آبان 1403

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

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

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

درست مانند کلید اصلی (Primary Key)، قید یونیک می‌تواند به‌عنوان ترکیبی از چند ستون یا به صورت یک ستونی تعریف شود. اما تفاوت اصلی این دو در این است که یک جدول می‌تواند تنها یک کلید اصلی داشته باشد ولی می‌تواند چندین قید یونیک داشته باشد.

کاربرد عملی یونیک در SQL


CREATE TABLE Customers (
CustomerID int NOT NULL,
Email nvarchar(255) UNIQUE,
PhoneNumber varchar(15),
PRIMARY KEY (CustomerID)
);

مثال بالا نشان می‌دهد که چگونه می‌توانید قید یونیک را در دستور CREATE TABLE اضافه کنید. در اینجا، ستون Email به‌عنوان یک ستون منحصربفرد تعریف شده است. این به‌این معناست که هیچ دو رکوردی نمی‌توانند یک ایمیل یکسان داشته باشند.

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

ستون PhoneNumber می‌تواند مقادیر تکراری داشته باشد؛ چون قید یونیک برای آن تعریف نشده است، به معنای امکان استفاده از مقادیر تکراری برای این فیلد می‌باشد.

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

سوالات متداول

؟

چرا باید از قید یونیک در SQL استفاده کنیم؟

؟

آیا می‌توانیم در یک جدول چندین قید یونیک داشته باشیم؟

؟

آیا یونیک با کلید اصلی نیاز به تعریف دارد؟