ایجاد محدودیت کلید خارجی – SQL FOREIGN KEY Constraint

بازدید: 608 بازدید
ایجاد محدودیت کلید خارجی - SQL FOREIGN KEY Constraint
[cdb_box_content]

با سلام خدمت همراهان همیشگی وب سایت پرنیان طرح

با یکی دیگر از مقالات آموزش SQL در خدمت شما عزیزان هستیم.

می توانید برای مطالعه بیشتر در مورد SQL  به این لینک در وب سایت پرنیان طرح مراجعه کنید.

با همراهی شما عزیزان و در ادامه آموزش های زبان برنامه نویسی SQL، وارد مباحث پیشرفته در این زبان شدیم.

در آموزش امروز قصد داریم در مورد نحوه ایجاد محدودیت کلید خارجی یا SQL FOREIGN KEY Constraint، در زبان برنامه نویسی SQL صحبت کنیم.

در ادامه آموزش همراه ما باشید.

[/cdb_box_content]
[cdb_box_content]

مقدمه


قید و بند و محدودیت ها یا Constraints، در SQL برای مشخص کردن قوانین برای داده ها در یک جدول استفاده می شود.

در این بین، محدودیت FOREIGN KEY Constraint یا کلید خارجی برای ارتباط دادن دو جدلو با یکدیگر استفاده می شود.

از بین مجموعه محدودیت هایی که در مقاله نحوه ایجاد قید ها و محدودیت ها SQL Constraints  گفته شد،کلید خارجی یک فیلد (یا مجموعه ای از فیلدها) در یک جدول است که در جدول دیگری به کلید اصلی (PRIMARY KEY) اشاره دارد.

جدولی که شامل کلید خارجی است، child table یا جدول کودک نامیده می شود.

به جدول حاوی کلید کاندیدا candidate key، جدول ارجاع یا والد parent table گفته می شود.

به دو جدول زیر توجه کنید.

محدودیت کلید خارجی -SQL FOREIGN KEY Constraint
محدودیت کلید خارجی -SQL FOREIGN KEY Constraint

 

توجه داشته باشید که ستون “PersonID” در جدول “سفارشات” به جدول “PersonID” در جدول “افراد” اشاره دارد.

ستون “PersonID” در جدول “افراد” کلید اصلی در جدول “افراد” است.

ستون  “PersonID” در جدول “سفارشات” یک کلید خارجی در جدول “سفارشات” است.

محدودیت FOREIGN KEY یا کلید خارجی ، برای جلوگیری از اقداماتی که باعث از بین رفتن پیوندها بین جداول می شود ، استفاده می شود.

محدودیت FOREIGN KEY همچنین از ورود داده های نامعتبر در ستون کلید خارجی جلوگیری می کند. زیرا این داده باید از نوع مقادیر موجود در جدولی باشد که به آن اشاره می کند.

در ادامه همراه ما باشید.

[/cdb_box_content]
[cdb_box_content]

استفاده از کلید خارجی در ایجاد جدول

SQL FOREIGN KEY on CREATE TABLE

دستور SQL زیر ، زمانی که جدول “سفارشات” ایجاد شود، ستون “PersonID” را در جدول “افراد” ، به کلید خارجی تبدیل می کند.

 

در زبان MySQL:

CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

 

در زبان های SQL Server / Oracle / MS Access:

CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

[/cdb_box_content]
[cdb_box_content]

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

 

در زبان های MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);

[/cdb_box_content]
[cdb_box_content]

استفاده از کلید خارجی در جدول از پیش طراحی شده

SQL FOREIGN KEY on ALTER TABLE

برای ایجاد محدودیت کلید خارجی در ستون “PersonID” وقتی جدول “سفارشات” از قبل ایجاد شده است ، از SQL زیر استفاده کنید:

 

در زبان های MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

 

[/cdb_box_content]
[cdb_box_content]

برای نامگذاری محدودیت کلید خارجی ، و برای تعریف آن در چند ستون برای جدولی که از پیش طراحی شده است ، از شکل نحوی زیر استفاده کنید:

 

در زبان های MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

[/cdb_box_content]
[cdb_box_content]

حذف محدودیت کلید خارجی

DROP a FOREIGN KEY Constraint

برای حذف محدودیت کلید خارجی، از SQL زیر استفاده کنید:

 

برای زبان MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

 

برای زبان های SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;

:

[/cdb_box_content]
[cdb_box_content]

اگر این مطلب برای شما مفید بود، ما را در گوگل ستاره باران کنید.

ترجمه و ارائه : رویا نجفی

منبع : وب سایت w3schools

[/cdb_box_content]
دسته بندی آموزش MY SQL
اشتراک گذاری
مقالات مرتبط

دیدگاهتان را بنویسید

سبد خرید

هیچ محصولی در سبد خرید نیست.