กวดวิชาSQL

SQL HOME บทนำ SQL ไวยากรณ์ SQL SQL Select SQL Select Distinct SQL ที่ไหน SQL และหรือไม่ใช่ คำสั่ง SQL โดย SQL แทรกลงใน ค่าว่างของ SQL SQL Update SQL Delete SQL Select Top SQL Min และ Max SQL Count, Avg, Sum SQL Like SQL Wildcards SQL ใน SQL ระหว่าง นามแฝงของ SQL การรวม SQL SQL Inner Join SQL เข้าร่วมด้านซ้าย SQL Right Join SQL เข้าร่วมแบบเต็ม เข้าร่วมด้วยตนเองของ SQL SQL Union กลุ่ม SQL โดย SQL มี SQL Exists SQL ใด ๆ ทั้งหมด SQL Select Into แทรก SQL ลงใน Select กรณี SQL ฟังก์ชัน SQL Null กระบวนงานที่เก็บไว้ของ SQL ข้อคิดเห็นของ SQL ตัวดำเนินการ SQL

ฐานข้อมูลSQL

SQL สร้าง DB SQL Drop DB ฐานข้อมูลสำรองของ SQL SQL สร้างตาราง SQL Drop Table SQL Alter Table ข้อจำกัดของ SQL SQL ไม่ใช่ Null SQL Unique คีย์หลักของ SQL คีย์ต่างประเทศของ SQL SQL Check SQL Default ดัชนี SQL SQL Auto Increment SQL Dates มุมมอง SQL การฉีด SQL SQL Hosting ประเภทข้อมูล SQL

การอ้างอิงSQL

คีย์เวิร์ด SQL ฟังก์ชัน MySQL ฟังก์ชันเซิร์ฟเวอร์ SQL ฟังก์ชัน MS Access SQL Quick Ref

ตัวอย่าง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" ในตาราง "Orders" ชี้ไปที่คอลัมน์ "PersonID" ในตาราง "Persons"

คอลัมน์ "PersonID" ในตาราง "Persons" อยู่PRIMARY KEYในตาราง "Persons"

คอลัมน์ "PersonID" ในตาราง "Orders" อยู่ FOREIGN KEYในตาราง "Orders"

ข้อFOREIGN KEYจำกัดนี้ป้องกันข้อมูลที่ไม่ถูกต้องจากการถูกแทรกลงในคอลัมน์ foreign key เนื่องจากจะต้องเป็นหนึ่งในค่าที่มีอยู่ในตารางพาเรนต์



SQL FOREIGN KEY บน CREATE TABLE

SQL ต่อไปนี้สร้าง a FOREIGN KEYในคอลัมน์ "PersonID" เมื่อสร้างตาราง "Orders":

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:

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:

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" เมื่อสร้างตาราง "Orders" แล้ว ให้ใช้ SQL ต่อไปนี้:

การเข้าถึง MySQL / SQL Server / Oracle / MS:

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

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

การเข้าถึง MySQL / SQL Server / Oracle / MS:

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:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;