کلیدهای جایگزین SQL در یک جدول پایگاه داده، کلیدهای کاندیدی هستند که فعلاً به عنوان کلید اصلی انتخاب نشدهاند. از آنها میتوان برای شناسایی منحصر به فرد یک ردیف (یا یک رکورد) در یک جدول استفاده کرد.
هیچ پرس و جو یا دستور خاصی برای تنظیم کلید جایگزین در یک جدول وجود ندارد و فقط ستونی است که نزدیکترین کاندید است که میتواند به عنوان کلید اصلی انتخاب شود. بنابراین، آنها همچنین به عنوان کلیدهای کاندید ثانویه نامیده میشوند.
اگر یک جدول پایگاه داده فقط شامل یک کلید کاندید باشد، آن کلید به عنوان کلید اصلی جدول در نظر گرفته میشود و در آن جدول کلید جایگزین وجود ندارد.
برای درک بهتر مفهوم کلید جایگزین مثال زیر را بررسی می کنیم. فرض کنید جدولی به نام CUSTOMERS با فیلدهای مختلف مانند ID، NAME، AGE، SH_ID، MOBILE_NO و SALARY داریم.
اطلاعاتی مانند ID، شماره موبایل و SH_ID یک مشتری منحصر به فرد هستند و میتوانیم رکوردهای جدول CUSTOMERS را با استفاده از فیلدهای مربوطه خود بهطور منحصر به فرد شناسایی کنیم: ID، SH_ID و MOBILE_NO. بنابراین، این سه فیلد میتوانند به عنوان کلیدهای کاندید در نظر گرفته شوند.
و از بین آنها، اگر یکی به عنوان کلید اصلی جدول CUSTOMERS اعلام شود، دو مورد باقیمانده کلیدهای جایگزین خواهند بود.
ویژگیهای کلیدهای جایگزین
در زیر برخی از ویژگیهای مهم کلیدهای جایگزین آورده شده است:
- کلید جایگزین مقادیر تکراری را قبول نمیکند.
- یک جدول میتواند بیش از یک کلید جایگزین داشته باشد.
- کلید جایگزین میتواند حاوی مقادیر NULL باشد، مگر اینکه محدودیت NOT NULL به طور صریح تنظیم شده باشد.
- همه کلیدهای جایگزین میتوانند کلیدهای کاندید باشند، اما همه کلیدهای کاندید نمیتوانند کلیدهای جایگزین باشند.
- کلید اصلی، که یک کلید کاندید نیز هست، نمیتواند به عنوان کلید جایگزین در نظر گرفته شود.