قيود FOREIGN KEY في SQL
- الصفحة السابقة مفتاح رئيسي SQL
- الصفحة التالية SQL Check
قيود FOREIGN KEY في SQL
يُشير مفتاح خارجي في جدول إلى مفتاح رئيسي في جدول آخر.
دعونا نوضح مفتاح خارجي من خلال مثال. انظر إلى الجداول التالية:
جدول "Persons":
Id_P | اسم العائلة | اسم الأب | عنوان | مدينة |
---|---|---|---|---|
1 | أدمز | جون | شارع أكسفورد | لندن |
2 | بوش | جورج | شارع فيفث أفينيو | نيويورك |
3 | كارتر | توماس | شارع تشانغان | بكين |
جدول "Orders":
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
لاحظ أن عمود "Id_P" في "Orders" يشير إلى عمود "Id_P" في جدول "Persons".
عمود "Id_P" في جدول "Persons" هو المفتاح الرئيسي في جدول "Persons".
عمود "Id_P" في جدول "Orders" هو مفتاح خارجي في جدول "Orders".
يستخدم محدد مفتاح خارجي لتجنب أعمال تدميرية بين الجداول.
يمكن لمحدد مفتاح خارجي أيضًا منع إدخال بيانات غير قانونية في عمود المفتاح الخارجي، لأنه يجب أن يكون أحد القيم في الجدول الذي يشير إليه.
محدد مفتاح خارجي في إنشاء الجدول
هذا SQL في إنشاء جدول "Orders" يتم إنشاء مفتاح خارجي لـ "Id_P":
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), مفتاح خارجي (Id_P) يشير إلى مرجع (Id_P) )
SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Persons(Id_P) )
إذا كنت بحاجة إلى تسمية قيود FOREIGN KEY و تعريف قيود FOREIGN KEY لأكثر من عمود، استخدم الجملة التالية لغة SQL:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
قيود FOREIGN KEY في ALTER TABLE SQL
إذا كنت ترغب في إنشاء قيود FOREIGN KEY لجدول "Orders" الذي يوجد فيه عمود "Id_P"، استخدم SQL التالية:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
إذا كنت بحاجة إلى تسمية قيود FOREIGN KEY و تعريف قيود FOREIGN KEY لأكثر من عمود، استخدم الجملة التالية لغة SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
إلغاء تنفيذ قيود FOREIGN KEY
إذا كنت ترغب في إلغاء تنفيذ قيود FOREIGN KEY، استخدم SQL التالية:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
- الصفحة السابقة مفتاح رئيسي SQL
- الصفحة التالية SQL Check