在MySQL中,約束是對表中數據進行限制和控制的特殊規則。常見的約束包括主鍵約束、唯一約束、非空約束、默認約束等。但是也有一些約束不包含在這些常見的約束中,下面我們來了解一下。
1. 外鍵約束
CREATE TABLE table1 ( id INT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE table2 ( id INT PRIMARY KEY, table1_id INT, FOREIGN KEY (table1_id) REFERENCES table1(id) );
外鍵約束用于限制兩個表之間的關系。在上面的例子中,table2中的table1_id與table1的id建立了外鍵約束,表示table2中存儲的table1_id必須是table1中的一個已存在的id。如果不滿足這個要求,插入數據時就會產生錯誤。
2. CHECK約束
CREATE TABLE table3 ( id INT PRIMARY KEY, age INT, CHECK (age>=18) );
CHECK約束用于限制某個字段的取值范圍。在上面的例子中,表格中的age字段必須大于等于18,否則插入數據就會失敗。
3. ENUM約束
CREATE TABLE table4 ( id INT PRIMARY KEY, gender ENUM('male','female','unknown') );
ENUM約束用于限定某個字段的取值范圍。在上面的例子中,表格中的gender字段只能存儲'male'、'female'或者'unknown'三個值中的一個。
綜上所述,以上三種約束在MySQL中也是非常常見的,掌握了它們的使用方法和場景可以幫助我們更好地構建數據庫模型,確保數據的一致性和可靠性。