MySQL中,外键和唯一键都是用来确保数据完整性的重要方式。它们在关系型数据库设计中扮演非常重要的角色。
外键是用来链接两个表格之间的字段的。 它确保对另一个表格的引用的正确性,并确保它们在表格之间的数据保持一致。 因此,MySQL中的外键是对另一表格的主键进行引用的。
CREATE TABLE customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50) ); CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
上面的代码示例中,orders表格中的customer_id字段是外键,它引用了customers表格中的customer_id字段。这意味着,每当你在orders表格中插入一个新的行,它都必须引用自customers表格中已存在的一个customer_id。
另一方面,唯一键牵涉到确保一个列不会有任何重复的值。这常常用于确保数据库表格中某些列的唯一性。唯一键的另一个用途是,将多个列中的数据链接到数据库中的另一张表格中时,使用一个唯一的标识符确保链接的正确性。
CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50), product_sku VARCHAR(50) UNIQUE ); CREATE TABLE orders_items ( order_item_id INT PRIMARY KEY, order_id INT, sku VARCHAR(50), quantity INT, FOREIGN KEY (order_id) REFERENCES orders(order_id), FOREIGN KEY (sku) REFERENCES products(product_sku) );
上面代码示例中,product_sku是唯一键,它确保products表格中的每个sku唯一。orders_items表格引用了orders和products表格中的主键,确保了外建引用的正确性,同时也确保了sku唯一性的正确性。
综上所述,外键和唯一键在MySQL中极为重要,它们确保了数据库表格中的数据完整性、正确性和唯一性。