บทช่วยสอนMySQL

หน้าแรกของ MySQL แนะนำ MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL WHERE MySQL และหรือไม่ใช่ MySQL สั่งซื้อโดย MySQL INSERT INTO ค่า NULL ของ MySQL MySQL UPDATE MySQL ลบ MySQL LIMIT MySQL MIN และ MAX MySQL COUNT, AVG, SUM MySQL ชอบ MySQL Wildcards MySQL IN MySQL ระหว่าง MySQL นามแฝง MySQL เข้าร่วม เข้าร่วม MySQL ภายใน MySQL ซ้ายเข้าร่วม MySQL ขวาเข้าร่วม MySQL CROSS เข้าร่วม MySQL เข้าร่วมด้วยตนเอง MySQL UNION กลุ่ม MySQL โดย MySQL มี MySQL EXISTS MySQL ใด ๆ ทั้งหมด MySQL INSERT SELECT กรณี MySQL ฟังก์ชั่น MySQL Null ความคิดเห็น MySQL ตัวดำเนินการ MySQL

ฐานข้อมูลMySQL

MySQL สร้าง DB MySQL Drop DB MySQL สร้างตาราง MySQL Drop Table MySQL Alter Table ข้อจำกัดของ MySQL MySQL ไม่ว่าง MySQL Unique คีย์หลัก MySQL MySQL Foreign Key MySQL Check MySQL Default MySQL สร้างดัชนี MySQL Auto Increment MySQL Dates มุมมอง 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" ในตาราง "Orders" ชี้ไปที่คอลัมน์ "PersonID" ในตาราง "Persons"

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

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

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



กุญแจต่างประเทศบน CREATE TABLE

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

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" เมื่อสร้างตาราง "Orders" แล้ว ให้ใช้ 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;