MySQL是一種關系型數據庫管理系統,它支持多種約束來限制表中數據的輸入。在MySQL中,約束是指可以通過添加限制條件來保證數據的一致性、完整性和唯一性的方法。
CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), gender CHAR(1), age INT, score DECIMAL(4,2), CONSTRAINT ck_gender CHECK (gender IN ('M', 'F')), CONSTRAINT ck_age CHECK (age >0), UNIQUE (id, name) );
上面的代碼創建了一個名為“students”的表,其中包含了五個字段。在這個表中,我們添加了三種不同類型的約束來確保數據的正確性。
第一種約束是“PRIMARY KEY”約束,它指定了表的主鍵。在這個例子中,表的主鍵是"id"字段。主鍵必須唯一并且不能為空。
第二種約束是“CHECK”約束,它可以定義一些條件來限制特定的數據輸入。在這個例子中,我們定義了兩個“CHECK”約束。第一個是“ck_gender”,限制了“gender”字段只能是“M”或“F”中的一個。第二個是“ck_age”,限制了“age”字段必須大于0。
第三種約束是“UNIQUE”約束,它確保表中的數據不會包含重復的值。在這個例子中,我們將“id”和“name”字段合并在一起,形成了一個唯一的鍵值對。
MySQL中還有其他類型的約束,如“FOREIGN KEY”約束,它可以使兩個表之間建立關聯關系。另外,還有“DEFAULT”約束,它可以指定默認值。
CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE DEFAULT NOW(), CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
上面的代碼演示了如何使用“FOREIGN KEY”約束來建立表之間的關系。在這個例子中,我們創建了一個名為“orders”的表,其中包括一個“customer_id”字段。然后,我們使用“FOREIGN KEY”約束將該字段與“customers”表中的“customer_id”字段建立關聯關系。
總而言之,MySQL中有很多種不同類型的約束,可以用來確保表中數據的正確性、完整性和唯一性。這些約束是數據庫應用程序設計的重要組成部分,可以幫助開發者避免數據輸入錯誤和數據不一致。