آموزش

تعریف کلید خارجی در SQL (Foreign Key)

تعریف کلید خارجی در SQL

کلید خارجی (Foreign Key) در SQL یک ویژگی در یک جدول است که به یک ستون (یا مجموعه ای از ستون ها) در جدول دیگر اشاره می کند. این ویژگی برای ایجاد ارتباط بین دو جدول و حفظ یکپارچگی داده ها استفاده می شود.

برای تعریف کلید خارجی در SQL، می توانید از دستور CREATE TABLE یا ALTER TABLE استفاده کنید.

در دستور CREATE TABLE، می توانید کلید خارجی را با استفاده از عبارت FOREIGN KEY بعد از تعریف ستون مورد نظر و با ذکر نام جدول و ستون ارجاعی مشخص کنید.

مثال 1:

SQL
CREATE TABLE orders (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  customer_id INT NOT NULL,
  FOREIGN KEY (customer_id) REFERENCES customers(id)
);

در این مثال:

  • ستون customer_id در جدول orders یک کلید خارجی است.
  • این کلید خارجی به ستون id در جدول customers اشاره می کند.

در دستور ALTER TABLE، می توانید با استفاده از عبارت ADD CONSTRAINT FOREIGN KEY کلید خارجی را به یک جدول موجود اضافه کنید.

مثال 2:

SQL
ALTER TABLE orders ADD CONSTRAINT FOREIGN KEY (customer_id) REFERENCES customers(id);

در این مثال:

  • کلید خارجی بر روی ستون customer_id در جدول orders تعریف می شود.
  • این کلید خارجی به ستون id در جدول customers اشاره می کند.

نکات مهم:

  • یک ستون می تواند هم کلید خارجی و هم کلید اولیه باشد.
  • مقادیر موجود در ستون کلید خارجی باید در ستون ارجاعی موجود باشند.
  • اگر یک رکورد در جدول ارجاعی حذف شود، رکوردهای مرتبط در جدول با کلید خارجی نیز باید حذف شوند.

 

مثال 3:

  • تعریف کلید خارجی با چند ستون:
SQL
CREATE TABLE order_details (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  FOREIGN KEY (order_id) REFERENCES orders(id),
  FOREIGN KEY (product_id) REFERENCES products(id)
);

در این مثال:

  • کلید خارجی از دو ستون order_id و product_id تشکیل شده است.

 

نکات تکمیلی:

  • می توانید از انواع مختلف کلیدهای خارجی مانند CASCADE و SET NULL برای تعیین نحوه رفتار با حذف رکوردها در جدول ارجاعی استفاده کنید.
  • برای اطلاعات بیشتر در مورد انواع کلیدها، می توانید به مستندات رسمی SQL مراجعه کنید.

 

نمایش بیشتر

نوشته‌های مشابه

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

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

همچنین ببینید
بستن
دکمه بازگشت به بالا