کلید اصلی (Primary Key)
«کلید اصلی در SQL» هر ردیف را یکتا شناسایی می کند. یعنی مقدارش تکراری نمی شود و تهی نیست. مثل کد ملی که برای هر نفر یکی است. بنابراین، هر جدول فقط یک کلید اصلی دارد. گاهی کلید اصلی از چند ستون تشکیل می شود.
تعریف کلید اصلی (PRIMARY KEY)
PRIMARY KEY یعنی یکتایی و غیرتهی همزمان. بنابراین، جلوی رکورد تکراری را می گیرد. برای مقایسه یکتایی ساده به یکتا (Unique) نگاه کن. برای رابطه بین جداول هم کلید خارجی مهم است.
PRIMARY KEY هنگام CREATE TABLE
در مای اس کیوال، می توان PRIMARY KEY را جداگانه روی ستون ها نوشت.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
در اس کیوال سرور، اوراکل، و اکسس می توان قید را کنار نوع ستون آورد.
CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
PRIMARY KEY چندستونه
گاهی ترکیب دو ستون باید یکتا شود. پس قید را روی هر دو بگذار.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);
نکته: اینجا یک PRIMARY KEY داریم اما از دو ستون ساخته شده.
افزودن PRIMARY KEY با ALTER TABLE
اگر جدول ساخته شده است، از ALTER TABLE کمک بگیر.
ALTER TABLE Persons
ADD PRIMARY KEY (ID);
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);
هشدار: ستون های کلید اصلی باید از قبل NOT NULL باشند. در غیر این صورت، افزودن قید خطا می دهد.
حذف PRIMARY KEY
MySQL
ALTER TABLE Persons
DROP PRIMARY KEY;
SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;
نکته: قبل از حذف، اثرات روی روابط را بسنج. زیرا کلید خارجی به کلید اصلی وابسته است. برای توضیح بیشتر ببین کلید اصلی در SQL.
راهنمای سه مرحله ای سریع
- ستون یکتا و غیرتهی را انتخاب کن.
- PRIMARY KEY را در CREATE یا ALTER تعریف کن.
- تکراری ها و NULL را قبل از اعمال قید رفع کن.
جمع بندی سریع
- هر جدول فقط یک PRIMARY KEY دارد.
- PRIMARY KEY تکراری و NULL را نمی پذیرد.
- می تواند تک ستونه یا چندستونه باشد.
- افزودن با ALTER نیازمند NOT NULL است.