دروس MySQL

MySQL HOME مقدمة MySQL MySQL RDBMS

MySQL SQL

MySQL SQL حدد MySQL MySQL أين MySQL و ، أو ، لا MySQL ORDER BY أدخل في MySQL قيم MySQL NULL تحديث MySQL حذف MySQL حدود MySQL MySQL MIN و MAX عد MySQL و AVG و SUM MySQL مثل MySQL Wildcards MySQL IN MySQL بين الأسماء المستعارة MySQL تنضم MySQL الانضمام إلى MySQL الداخلي MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN الانضمام الذاتي إلى MySQL اتحاد MySQL مجموعة MySQL حسب MySQL HAVING EXISTS MySQL MySQL أي ، الكل MySQL INSERT SELECT حالة MySQL وظائف MySQL Null تعليقات MySQL عوامل تشغيل MySQL

قاعدة بيانات MySQL

إنشاء قاعدة بيانات MySQL MySQL Drop DB إنشاء جدول MySQL جدول إسقاط MySQL جدول تعديل MySQL قيود MySQL MySQL ليست لاغية MySQL فريد من نوعه مفتاح MySQL الأساسي المفتاح الخارجي لـ MySQL فحص MySQL افتراضي MySQL إنشاء فهرس MySQL زيادة MySQL التلقائية تواريخ MySQL مشاهدات MySQL

مراجع MySQL

أنواع بيانات MySQL وظائف MySQL

أمثلة على MySQL

أمثلة على MySQL مسابقة MySQL تمارين MySQL

قيود MySQL المفتاح الخارجي


قيود MySQL المفتاح الخارجي

يتم FOREIGN KEYاستخدام القيد لمنع الإجراءات التي من شأنها تدمير الروابط بين الجداول.

A FOREIGN KEYهو حقل (أو مجموعة حقول) في جدول واحد ، يشير إلى PRIMARY KEYالجدول الموجود في جدول آخر.

يُطلق على الجدول الذي يحتوي على المفتاح الخارجي اسم الجدول الفرعي ، ويسمى الجدول الذي يحتوي على المفتاح الأساسي بالجدول المشار إليه أو الجدول الأصل.

انظر إلى الجدولين التاليين:

جدول الأشخاص

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

جدول الطلبات

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

لاحظ أن عمود "PersonID" في جدول "الطلبات" يشير إلى عمود "PersonID" في جدول "الأشخاص".

عمود "معرف الشخص" في جدول "الأشخاص" موجود PRIMARY KEYفي جدول "الأشخاص".

عمود "معرف الشخص" في جدول "الطلبات" موجود FOREIGN KEYفي جدول "الطلبات".

يمنع FOREIGN KEYالقيد إدراج البيانات غير الصالحة في عمود المفتاح الخارجي ، لأنه يجب أن تكون إحدى القيم الموجودة في الجدول الأصلي.



مفتاح خارجي في إنشاء الجدول

ينشئ SQL التالي FOREIGN KEYعمودًا في عمود "PersonID" عند إنشاء جدول "الطلبات":

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

للسماح بتسمية FOREIGN KEYقيد ، ولتحديد FOREIGN KEYقيد على أعمدة متعددة ، استخدم بناء جملة SQL التالي:

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)
);

مفتاح خارجي على ALTER TABLE

لإنشاء FOREIGN KEYقيد على عمود "PersonID" عندما يكون جدول "الطلبات" قد تم إنشاؤه بالفعل ، استخدم SQL التالي:

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

للسماح بتسمية FOREIGN KEYقيد ، ولتحديد FOREIGN KEYقيد على أعمدة متعددة ، استخدم بناء جملة SQL التالي:

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

قم بإسقاط قيد مفتاح أجنبي

لإسقاط FOREIGN KEYقيد ، استخدم SQL التالي:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;