MySQL 是一種流行的關系型數據庫管理系統,它支持外鍵,可以實現關系型數據表之間的聯系和數據的完整性。在 MySQL 數據庫中,外鍵是將一張表中的數據關聯到另一張表中的數據的一種方式。例如,在一個訂單系統中,訂單和訂單詳情是一對多的關系,每個訂單可能對應多個訂單詳情,因此可以在訂單詳情表中使用外鍵指向訂單表中的訂單號,從而實現一對多的數據關系。
CREATE TABLE orders( order_id INT PRIMARY KEY, customer_name VARCHAR(50), ORDER_DATE DATE ); CREATE TABLE order_details( order_detail_id INT PRIMARY KEY, order_id INT, product_name VARCHAR(50), price DECIMAL(10,2), FOREIGN KEY (order_id) REFERENCES orders(order_id) );
在上述代碼段中,orders 表是訂單表,包含訂單號、客戶姓名和訂單時間等基本信息。order_details 表是訂單詳情表,包含訂單詳情編號、商品名稱、價格及所屬的訂單編號等信息。可以看到,在 order_details 表中,使用 FOREIGN KEY 關鍵字定義了 order_id 字段的外鍵,指向了 orders 表中的 order_id 字段。這樣,訂單和訂單詳情之間就建立了一對多的關系。
建立外鍵關系的目的是為了維護數據的完整性。例如,在上述訂單系統中,如果對應的訂單被刪除,其對應的訂單詳情也應該隨之刪除,否則可能會存在無效的數據。通過定義外鍵,數據庫系統可以在刪除訂單時自動刪除與之相關的訂單詳情記錄,從而保證數據的完整性。
此外,可以通過使用 ON DELETE 和 ON UPDATE 選項進一步控制外鍵的行為。例如,可以設置 ON DELETE CASCADE 選項,表示在刪除訂單時,所有相關的訂單詳情也將被自動刪除;或者設置 ON UPDATE CASCADE,表示在修改訂單號時,所有相關的訂單詳情也將被自動更新。