在MySQL中,關系數據庫表與表之間的關聯可以通過使用“外鍵”來實現。在創建表時,使用外鍵可以使多個表之間實現數據的一致性,保證關聯表的數據完整性。
在MySQL中,創建外鍵需要遵循以下步驟:
CREATE TABLE 必須先創建關聯表1(如下):
CREATE TABLE 表名1 (字段名1-1 數據類型,字段名1-2 數據類型,
...........,
CONSTRAINT 外鍵名稱
FOREIGN KEY (主表字段名1)
REFERENCES 關聯表2(關聯表2字段名2)
)
CREATE TABLE 關聯表2(如下):
CREATE TABLE 表名2(字段名2-1 數據類型,字段名2-2 數據類型,
...........,
PRIMARY KEY (主鍵名)
)
在以上語句中,創建表1時,字段名1-1等是表1所需要的字段描述,CONSTRAINT 外鍵名稱定義外鍵名稱,在FOREIGN KEY(主表字段名)中定義主表所需的外鍵字段名稱,REFERENCES關聯表2 (關聯表2字段名2)表示定義關聯表以及關聯表所需的字段名。
例如,我們使用外鍵定義兩個表:customers(客戶)和orders(訂單)。
CREATE TABLE customers(
CustomerID INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
PRIMARY KEY(CustomerID)
);
CREATE TABLE orders(
OrderID INT NOT NULL AUTO_INCREMENT,
OrderNumber INT NOT NULL,
CustomerID INT,
PRIMARY KEY(OrderID),
CONSTRAINT FK_CustomerOrder FOREIGN KEY(CustomerID)
REFERENCES customers(CustomerID)
)
以上代碼定義了兩種表——客戶表和訂單表。 在定義訂單表時,我們使用了外鍵“FK_CustomerOrder”鏈接兩個表。 FK_CustomerOrder是外鍵名稱, CustomerID是主表字段名,customers是關聯表名稱, CustomerID是關聯表名稱的字段名。
使用外鍵時,我們可以實現數據的一致性,保證了所有訂單都必須屬于某個客戶,在插入失敗之前,不允許插入不屬于任何客戶的訂單。同時,外鍵還可以幫助我們在刪除或修改數據時,避免出現引用的數據無法刪除或修改的情況。
下一篇css激活樣式實例