منبع اصلی نوشتار زیر در این لینک قرار دارد

آموزش ایجاد و حذف و تغییر کلید اصلی – Primary Key در SQL

در این مطلب از اوپن مایند، وبسایت آموزش الگوریتم ها و برنامه نویسی، می خواهیم ایجاد و حذف و در نهایت تغییر کلید اصلی در زبان SQL را بررسی کنیم.

ایجاد کلید اصلی به ما کمک می کند تا بر اساس خاصیت یکتا بودن مقادیر یک ستون یا ترکیبی از ستون های مشخص، به طور دقیق یک ردیف خاص را در جدول پیدا و بازیابی کنیم.

همانطور که اشاره شد، مقدار کلید اصلی برای ردیف ها (رکورد ها) باید کاملاً متفاوت و یکتا باشد و دقت به این مورد ضروری است. همچنین مقدار کلید اصلی نمی تواند NULL یا تهی باشد. نکته مهم دیگر درباره یک جدول این است که، جدول تنها می تواند دارای یک کلید اصلی باشد (که البته خود می تواند ترکیبی از چند ستون باشد).

ایجاد کلید اصلی هنگام ساخت جدول با دستور CREATE TABLE

کوئری SQL زیر هنگام ساخت جدول “Persons” ، ستون “ID” را به عنوان PRIMARY KEY مشخص می کند (بدیهی است که شناسه ملی یا کد ملی برای هر کسی یکتاست و کاملاً برای مشخص کردن یک ردیف مشخص مربوط به اطلاعات یک فرد مناسب است).

نکته ای که اینجا قابل توجه است این است که اگر بخواهیم تنها یک ستون را به عنوان کلید اصلی در نظر بگیریم، نحوه نوشتار مشخص کردن آن متفاوت است. اما برای ترکیب چند ستون این تفاوت وجود ندارد. هر دو مورد در ادامه نشان داده شده است:

نوشتار در MySQL برای یک ستون به عنوان کلید اصلی:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);

نوشتار در SQL Server / Oracle / MS Access برای یک ستون به عنوان کلید اصلی:

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

حالا نوشتار مشخص کردن ترکیب چند ستون به عنوان کلید اصلی را در زیر می آوریم تا ببینید که در هر چهار سیستم MySQL / SQL Server / Oracle / MS Access باید آن را به صورت CONSTRAINT تعریف کرد.

نوشتار در MySQL / SQL Server / Oracle / MS Access برای چند ستون به عنوان کلید اصلی:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);

دقت شود که انتخاب و ترکیب چند ستون به عنوان کلید اصلی جدول، تناقضی با ضرورت یگانه بودن کلید اصلی در جدول ندارد. همانطور که مشاهده می کنید، در کوئری بالا ترکیب (ID + LastName) به عنوان تنها کلید اصلی جدول انتخاب شده است.

ایجاد کلید اصلی پس از ساخت جدول به کمک ALTER TABLE

اگر در هنگام ساخت جدول فراموش کنیم که کلید اصلی را ایجاد کنیم، و یا حتی به قصد تغییر آن ابتدا کلید اصلی قبلی را حذف کنیم و بخواهیم یکی جدید بسازیم چه؟ در این صورت به شیوه های زیر عمل می کنیم.

برای مشخص کردن یک ستون به عنوان کلید اصلی در ALTER TABLE:

ALTER TABLE Persons
ADD PRIMARY KEY (ID);

و اما باید بدانید که این نحوه نوشتار برای انتخاب چند ستون به عنوان کلید اصلی متفاوت است و باید به شکل ایجاد CONSTRAINT عمل شود.

برای مشخص کردن چند ستون به عنوان کلید اصلی در ALTER TABLE:

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);

دقت کنید که ستون هایی که به عنوان کلید اصلی انتخاب می کنید، باید در هنگام ساخت جدول به عنوان ستون هایی معرفی شده باشند که نمی توانند مقدار NULL را به خود بگیرند.

حذف نقش کلید اصلی :

برای حذف نقش کلید اصلی از روی جدول (چه یک ستون چه چند ستون) ، به شیوه زیر عمل می کنیم. اما به یاد داشته باشید نحوه نوشتار آن برای MySQL متفاوت است.

نحوه نوشتار کوئری حذف نقش کلید اصلی در MySQL :

ALTER TABLE Persons
DROP PRIMARY KEY;

نحوه نوشتار کوئری حذف نقش کلید اصلی در SQL Server / Oracle / MS Access :

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

 

 

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

برنامه نویسی خوش بگذرد! 🙂



برچسب ها : , , ,