Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

FOREIGN KEY คืออะไร และวิธีใช้ในตาราง MySQL

FOREIGN KEY คือคอลัมน์หรือชุดคอลัมน์ที่ใช้สร้างลิงก์ระหว่างข้อมูลในสองตาราง หรือพูดอีกนัยหนึ่ง FOREIGN KEY constraint เกี่ยวข้องกับสองตาราง ใช้เพิ่มความสมบูรณ์ของข้อมูล เพราะ PRIMARY KEY ของตารางหนึ่งลิงก์กับ FOREIGN KEY ของอีกตาราง

ไวยากรณ์

FOREIGN KEY [column_name] REFERENCES [table_having_Primary_Key] ([column_name]);

REFERENCES เป็นคีย์เวิร์ด column_name คือรายการคอลัมน์ที่ตั้ง FOREIGN KEY table having Primary Key คือชื่อตารางที่มี PRIMARY KEY column_name คือรายการคอลัมน์ที่ตั้ง PRIMARY KEY

ตัวอย่าง

มีสองตาราง 'Customer' และ 'Orders' ความสัมพันธ์สร้างโดย foreign key ใน 'orders' ระบุโดยฟิลด์ 'Cust_Id':

mysql> CREATE TABLE Customer(Cust_ID INT PRIMARY KEY, First_name VARCHAR(20), Last_name VARCHAR(20), City VARCHAR(10));
Query OK, 0 rows affected (0.13 sec)

mysql> CREATE TABLE Orders(Order_Id INT PRIMARY KEY, Product_Name VARCHAR(25), Orderdate DATE, Cust_ID INT, FOREIGN KEY(Cust_ID) REFERENCES Customer(Cust_id));
Query OK, 0 rows affected (0.13 sec)

mysql> DESCRIBE Orders;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| Order_Id     | int(11)     | NO   | PRI | NULL    |       |
| Product_Name | varchar(25) | YES  |     | NULL    |       |
| Orderdate    | date        | YES  |     | NULL    |       |
| Cust_ID      | int(11)     | YES  | MUL | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

ตาราง 'Customer' เรียกว่า Parent table หรือ referenced table ตาราง 'Orders' เรียกว่า child table หรือ referencing table แถวใน child table ต้องมีค่าที่มีอยู่ใน parent table