對于MySQL,一般而言我們可以使用約束(constraint)來保證數(shù)據(jù)的完整性與一致性。這些約束包括主鍵(primary key)、外鍵(foreign key)、唯一約束(unique constraint)等等。但是在MySQL中,也有一些不包含在以上幾種約束中的約束類型。
1. NOT NULL 約束 NOT NULL 約束可以保證某個列的值不為空。雖然它不屬于直接定義列的約束,但是在很多情況下,它被認為是一種約束。可以通過如下語句來添加 NOT NULL 約束: ALTER TABLE table_name MODIFY column_name column_type NOT NULL; 2. DEFAULT 約束 DEFAULT 約束可以為某個列指定默認值,當插入記錄時,如果該列沒有明確地指定值,則使用默認值。例如,如下語句可以為 student 表中的 age 列添加默認值 18: ALTER TABLE student ALTER COLUMN age SET DEFAULT 18; 3. CHECK 約束 CHECK 約束可以通過指定條件來限制列的取值范圍。例如,如下語句可以為 student 表中的 age 列添加 CHECK 約束,限制取值范圍為 18-25: ALTER TABLE student ADD CONSTRAINT age_check CHECK (age BETWEEN 18 AND 25); 4. ENUM 約束 ENUM 約束可以限制某個列只能包含預定義的一組值。例如,如下語句可以為 student 表中的 sex 列添加 ENUM 約束,限制只能取值為 '男' 或 '女': ALTER TABLE student MODIFY sex ENUM('男', '女');
以上就是MySQL中不包含在主鍵、外鍵、唯一約束中的一些約束類型,它們或多或少地都可以對數(shù)據(jù)的完整性與一致性做出一定的貢獻。