دروس SQL

SQL الصفحة الرئيسية مقدمة SQL بناء جملة SQL حدد SQL حدد SQL مميزة SQL أين SQL و ، أو ، لا ترتيب SQL حسب إدراج SQL في قيم SQL الفارغة تحديث SQL حذف SQL حدد SQL الأعلى SQL Min و Max عدد SQL ، المتوسط ​​، المجموع SQL مثل SQL Wildcards SQL في SQL بين الأسماء المستعارة لـ SQL SQL ينضم انضمام SQL الداخلية انضمام SQL الأيسر SQL حق الانضمام SQL انضمام كامل الانضمام الذاتي SQL اتحاد SQL مجموعة SQL حسب SQL وجود SQL موجود SQL أي ، الكل SQL حدد Into إدراج SQL في التحديد حالة SQL وظائف SQL الفارغة إجراءات SQL المخزنة تعليقات SQL عوامل SQL

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

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

مراجع SQL

كلمات SQL وظائف MySQL وظائف خادم SQL وظائف MS Access المرجع السريع SQL

أمثلة SQL

أمثلة SQL اختبار SQL تمارين SQL شهادة SQL

قيود المفتاح الأجنبي SQL


قيود المفتاح الأجنبي SQL

يتم 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 في إنشاء الجدول

ينشئ SQL التالي FOREIGN KEYعمودًا في عمود "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 / Oracle / MS Access:

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

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

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

SQL FOREIGN KEY في ALTER TABLE

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

MySQL / SQL Server / Oracle / MS Access:

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

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

MySQL / SQL Server / Oracle / MS Access:

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

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

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

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

خادم SQL / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;