في هذه المقالة، سوف نتعلم كيفية إضافة مفتاح خارجي إلى العمود الموجود في جدول قاعدة بيانات SQL الخاصة بنا.
ال مفتاح غريب في SQL يتم استخدامه لربط سجل جدولين في قاعدة البيانات. يجب أن يكون العمود المحدد كـ FOREIGN KEY في أحد الجداول هو PRIMARY KEY في جدول آخر في نفس قاعدة البيانات.
يمكننا بسهولة إضافة مفتاح خارجي إلى العمود بالطريقتين التاليتين:
- أضف المفتاح الخارجي باستخدام بيان إنشاء الجدول
- أضف مفتاحًا خارجيًا باستخدام بيان Alter Table
إذا كنت تريد إضافة مفتاح أجنبي إلى العمود في جدول SQL، فيجب عليك اتباع الخطوات التالية بالتسلسل المحدد:
- إنشاء قاعدة البيانات في النظام.
- إنشاء جدولين في نفس قاعدة البيانات.
- عرض بنية الجدول قبل إضافة المفتاح الخارجي.
- أضف مفتاحًا خارجيًا إلى الجدول.
- عرض هيكل الجدول.
والآن سنقوم بشرح الخطوات المذكورة أعلاه بمثال:
الخطوة 1: إنشاء قاعدة بيانات
في لغة الاستعلام الهيكلية، يعد إنشاء قاعدة بيانات الخطوة الأولى لتخزين الجداول المنظمة في قاعدة البيانات.
استخدم بناء جملة SQL التالي لإنشاء قاعدة بيانات:
CREATE DATABASE Database_Name;
لنفترض أنك تريد إنشاء مركبات قاعدة البيانات. للقيام بذلك، عليك كتابة الأمر التالي في لغة الاستعلام الهيكلية:
CREATE DATABASE Vehicles;
الخطوة 2: إنشاء جدولين في قاعدة البيانات
الآن، عليك استخدام بناء جملة SQL التالي لإنشاء الجداول في قاعدة البيانات الخاصة بك:
CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) );
يقوم استعلام SQL التالي بإنشاء ملف تفاصيل_السيارات الجدول في مركبات قاعدة البيانات.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
يتم إنشاء الاستعلام التالي Cars_Price_Details الجدول في مركبات قاعدة البيانات:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
الخطوة 3: عرض بنية الجدول قبل إضافة المفتاح الخارجي
بعد إنشاء الجدول وإدراج البيانات، يمكنك عرض بنية كلا الجدولين عن طريق كتابة الاستعلام التالي في تطبيق SQL الخاص بك:
DESC Cars or DESCRIBE Cars ;
مجال | يكتب | باطل | مفتاح | تقصير | إضافي |
---|---|---|---|---|---|
رقم السياره | إنت | لا | في | باطل | زيادة تلقائية |
نموذج | إنت | نعم | - | باطل | - |
اسم_السيارة | فارتشار(20) | نعم | - | باطل | |
لون | فارتشار(20) | نعم | - | باطل | - |
DESC Cars_Price_Details;
مجال | يكتب | باطل | مفتاح | تقصير | إضافي |
---|---|---|---|---|---|
طراز السيارة | إنت | لا | في | باطل | - |
سعر السيارة | إنت | لا | - | باطل |
الخطوة 4: إضافة مفتاح خارجي إلى العمود في الجدول
إذا كنت تريد إضافة المفتاح الخارجي في وقت إنشاء الجدول، فيجب عليك استخدام بناء جملة CREATE TABLE التالي في SQL:
CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ;
مثال
يضيف الاستعلام التالي المفتاح FOREIGN في عمود 'الطراز' في جدول Cars_Details:
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ;
ينضم هذا الاستعلام في SQL تفاصيل_السيارات الجدول مع Cars_Price_Details الجدول بمساعدة مفتاح خارجي.
الخطوة 5: عرض بنية الجدول بعد إضافة المفتاح الخارجي
للتحقق من نتيجة الاستعلام الذي تم تنفيذه في 4ذخطوة، يجب عليك كتابة الأمر DESC التالي في SQL:
DESC Cars_Details;
مجال | يكتب | باطل | مفتاح | تقصير | إضافي |
---|---|---|---|---|---|
رقم السياره | إنت | نعم | أساسي | باطل | زيادة تلقائية |
نموذج | إنت | لا | أجنبي | باطل | - |
اسم_السيارة | فارتشار(20) | نعم | - | باطل | - |
لون | فارتشار(20) | نعم | - | باطل | - |
سعر | إنت | لا | - | باطل | - |
متوسط | إنت | لا | - | 0 | - |
كما هو موضح في الإخراج أعلاه، يتم إنشاء عمود النموذج كمفتاح خارجي.
أضف المفتاح الخارجي إلى الجدول الموجود
إذا كنت تريد إضافة المفتاح الخارجي إلى الجدول الموجود، فيجب عليك استخدام بناء جملة ALTER التالي في SQL:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
يضيف الاستعلام التالي مفتاحًا خارجيًا في عمود النموذج عندما يكون جدول Cars_Details موجودًا بالفعل في نظام قاعدة البيانات:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
ينضم استعلام ALTER هذا في SQL تفاصيل_السيارات الجدول مع Cars_Price_Details الجدول بمساعدة مفتاح خارجي.
حذف المفتاح الخارجي من الجدول
إذا كنت تريد حذف المفتاح الخارجي من عمود الجدول، عليك استخدام ما يلي تغيير بناء الجملة في SQL:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
يقوم الاستعلام التالي بحذف المفتاح FOREIGN الذي تم إنشاؤه من عمود النموذج في جدول Cars_Details:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;