ล่าสุดการพัฒนาเว็บบทเรียน
 

SQLข้อ จำกัด ที่สำคัญของต่างประเทศ


SQL คีย์ต่างประเทศ จำกัด

สำคัญต่างประเทศในหนึ่งจุดตารางคีย์หลักในตารางอื่น

ลองแสดงให้เห็นถึงต่างประเทศที่สำคัญด้วยตัวอย่าง มองไปที่สองตารางต่อไปนี้:

"Persons" ตาราง:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"Orders" ตาราง:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

โปรดทราบว่า "P_Id" คอลัมน์ใน "Orders" จุดตารางกับ "P_Id" คอลัมน์ใน "Persons" ตาราง

"P_Id" คอลัมน์ใน "Persons" ตารางเป็นคีย์หลักใน "Persons" ตาราง

"P_Id" คอลัมน์ใน "Orders" ตารางสำคัญต่างประเทศใน "Orders" ตาราง

ข้อ จำกัด ที่สำคัญของต่างประเทศจะใช้เพื่อป้องกันการกระทำที่จะทำลายการเชื่อมโยงระหว่างตาราง

ข้อ จำกัด ที่สำคัญของต่างประเทศยังป้องกันไม่ให้ข้อมูลที่ไม่ถูกต้องจากการถูกแทรกลงในคอลัมน์คีย์ต่างประเทศเพราะมันจะต้องมีค่าใดค่าหนึ่งที่มีอยู่ในตารางจะชี้ไปที่


SQL คีย์ต่างประเทศข้อ จำกัด ในการสร้างตาราง

ต่อไปนี้ SQL สร้างสำคัญต่างประเทศใน "P_Id" คอลัมน์เมื่อ "Orders" ตารางสร้าง:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

เพื่ออนุญาตให้มีการตั้งชื่อของข้อ จำกัด ที่สำคัญต่างประเทศและสำหรับการกำหนดข้อ จำกัด คีย์ที่ต่างประเทศในหลายคอลัมน์ใช้ไวยากรณ์ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

SQL คีย์ต่างประเทศข้อ จำกัด เกี่ยวกับการเปลี่ยนแปลงตาราง

เพื่อสร้างข้อ จำกัด KEY ต่างประเทศใน "P_Id" คอลัมน์เมื่อ "Orders" ตารางจะถูกสร้างขึ้นแล้วใช้ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

เพื่ออนุญาตให้มีการตั้งชื่อของข้อ จำกัด ที่สำคัญต่างประเทศและสำหรับการกำหนดข้อ จำกัด คีย์ที่ต่างประเทศในหลายคอลัมน์ใช้ไวยากรณ์ SQL ต่อไปนี้:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

จะลดลงข้อ จำกัด ที่สำคัญของต่างประเทศ

ที่จะลดข้อ จำกัด ที่สำคัญต่างประเทศใช้ SQL ต่อไปนี้:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders