کلید خارجی در sql و نحوه تعریف آن

0 دیدگاه
مقاله آموزشی
Rate this post
نحوه تعریف کلید خارجی

در نحوه تعریف کلید خارجی در sql برای تمامی راه حل ها ابتدا باید جدولی مانند جدول دانش آموز ایجاد کنیم.

راه حل 1 (جدول جدید)

CREATE TABLE student (
id INT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
city_id INT FOREIGN KEY REFERENCES city(id)
);

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

در مثال ما، دانشجوی جدول را با استفاده از عبارت CREATE TABLE ایجاد می کنیم. نام ستون ها را فهرست می کنیم و انواع داده های مربوطه را در پرانتز قرار می دهیم. ستون city_id کلید خارجی در این جدول است و مقدار ID ذخیره شده در ستون id در شهر جدول را نشان می دهد. ما در انتهای تعریف این ستون، منابع کلید خارجی را می نویسیم و آن را با جدول و ستون ارجاع شده دنبال می کنیم: city(id).

به خاطر داشته باشید که می توانید بیش از یک کلید خارجی برای یک جدول ایجاد کنید.

راه حل 2 (جدول جدید)

CREATE TABLE student (
id INT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
city_id INT,
FOREIGN KEY (city_id) REFERENCES city(id)
);

توضیحات:
راه دیگر برای تعریف کلید خارجی در هنگام ایجاد جدول، استفاده از عبارت FOREIGN KEY REFERENCES در انتهای تعاریف ستون است. در این حالت بعد از عبارت FOREIGN KEY، ستون کلید خارجی را تعیین می کنیم. بعد عبارت REFERENCES به همراه نام جدول و ستون ارجاع شده می آید.

راه حل 3 (جدول جدید)

CREATE TABLE student (
id INT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
score_id INT,
subject_id INT,
      CONSTRAINT fk_student_score_subject_id 
      FOREIGN KEY (subject_id,
 score_id) REFERENCES score_subject(subject_id, score_id)
);

محدودیت fk_student_score_subject_id
کلید خارجی (شماره_موضوع، شناسه_score_id) مراجع score_subject(subject_id، score_id)
)
در این مثال، محدودیت

fk_student_score_subject_id یک کلید خارجی است که از دو ستون score_id و subject_id تشکیل شده است. این دو ستون کلید خارجی به دو ستون در جدول score_subject – score_id و subject_id اشاره دارد.

این هم یک مثال دیگر:

راه حل 4 (جدول جدید)

CREATE TABLE student (
id INT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
city_id INT,
      CONSTRAINT fk_student_city_id 
      FOREIGN KEY (city_id) REFERENCES city(id)
);

توضیحات در مورد مثال بالا:

در این کد مجدداً عبارت CONSTRAINT با نام این محدودیت داریم. از نام هایی استفاده کنید که به راحتی قابل خواندن و درک باشند. در مثال ما از نام fk_student_city_id استفاده می کنیم که جدول و ستون مربوطه را نشان می دهد. سپس، کلید خارجی را می نویسیم و نام ستونی را که تبدیل به کلید خارجی می شود، اضافه می کنیم (در پرانتز). سپس عبارت REFERENCES و به دنبال آن نام جدول و ستون ارجاع شده (در اینجا: id) داریم.

راه حل 5 (جدول موجود)

دانش آموز ALTER TABLE

افزودن کلید خارجی (city_id) مراجع شهر(id);

توضیحات در مورد مثال بالا:

همچنین می توان یک کلید خارجی جدید به جدول موجود اضافه کرد. در اینجا، جدول با استفاده از عبارت ALTER TABLE تغییر می یابد. نام جدول (در مثال ما، student) بعد از کلمه کلیدی ALTER TABLE قرار می گیرد. بعد، عبارت ADD FOREIGN KEY با نام ستونی که به عنوان کلید خارجی استفاده می شود، همراه می شود. سپس عبارت REFERENCES با نام جدول ارجاع شده و نام ستون کلید اصلی در پرانتز داریم.

توجه داشته باشید که جدولی که در حال تغییر آن هستید باید قبل از اجرای این دستور وجود داشته باشد.

راه حل 6 (جدول موجود، محدودیت کلید خارجی)

دانش آموز ALTER TABLE

محدودیت fk_student_city_id را اضافه کنید
کلید خارجی (city_id) مراجع شهر(id)

توضیحات در مورد مثال بالا:

اگر می‌خواهید یک ستون کلید خارجی را به‌عنوان محدودیت برای جدول موجود نام‌گذاری کنید، از یک پرس و جو مانند این استفاده کنید. در اینجا، محدودیت کلید خارجی fk_student_city_id نام دارد. اگر نام محدودیت را مشخص نکنید، پایگاه داده یک نام محدودیت پیش فرض ایجاد می کند (که بسته به پایگاه داده متفاوت خواهد بود).

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

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

preloader