SQL PRIMARY KEY

  • این محدودیت یک مشخصه یکتایی است که برای هر داده در جدول پایگاه داده تعریف میشود
  • primary key حتما باید مقدارش یکتا باشد
  • مقدار null را نمیتواند بپذیرد
  • هر جدول باید حتما یک primary key داشته باشد
  • و البته فقط یک primary key میتواند داشته باشد.

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

ایجاد محدودیت primary key در هنگام تولید جدول

MySQL:

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

SQL Server / Oracle / MS Access:

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

و اما برای اینکه یک محدودیت primary key را نامگذاری کنیم و اینکه برای یک جدول با چندین ستون یک primary key تعریف کنیم از دستور زیر استفاده می کنیم خوب به این دستور دقت کنید

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

ایجاد primary key بعد از ساخت یک جدول

برای انجام عمل فوق از دستور زیر استفاده میکنیم و حتما دستور alter را بخاطر دارید ، دقت کنید

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

و همچنین این عمل برای یک جدول با داده های بسیار از دستور زیر بهره میگیریم

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

نکته:

دقت کنید زمانی که شما بعد از ساخت یک جدول اقدام به تولید primary key میکنید باید حتما انرا  not null تعریف کنید

حذف یک primary key

برای این کار از دستور زیر استفاده میکنیم

MySQL

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

مترجم: علیرضا مسگری

شما ممکن است این را هم بپسندید

یک پاسخ

  1. نیک گفت:

    ممنون از توضیحات

پاسخ دهید

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