MySQL约束(constraint)用于在数据库表中定义的列上施加规则,以限制插入、更新或删除操作。约束可以确保数据的完整性和一致性。
在MySQL中,可以使用以下关键字来定义约束:
- PRIMARY KEY:在列上定义主键约束,用于唯一标识表中的每一行。一个表只能有一个主键约束,且主键值不能为NULL。
CREATE TABLE table_name ( column1 datatype PRIMARY KEY, column2 datatype, ... );
- FOREIGN KEY:在列上定义外键约束,用于建立表与表之间的关系。外键值必须是被引用表中的主键值,或者为NULL(如果允许)。被引用的表必须存在。
CREATE TABLE table_name1 ( column1 datatype PRIMARY KEY, column2 datatype, ... FOREIGN KEY (column2) REFERENCES table_name2(column1) );
- UNIQUE:在列上定义唯一约束,用于确保列中的值是唯一的,不可重复。
CREATE TABLE table_name ( column1 datatype UNIQUE, column2 datatype, ... );
- NOT NULL:在列上定义非空约束,用于确保列中的值不为NULL。
CREATE TABLE table_name ( column1 datatype NOT NULL, column2 datatype, ... );
- CHECK:在列上定义检查约束,用于限制列中的值必须满足特定的条件。
CREATE TABLE table_name ( column1 datatype CHECK (condition), column2 datatype, ... );
- DEFAULT:在列上定义默认约束,用于指定当插入新行时,如果未提供该列的值,则使用默认值。
CREATE TABLE table_name ( column1 datatype DEFAULT default_value, column2 datatype, ... );
可以在创建表时定义约束,也可以在已存在的表上使用ALTER TABLE语句来添加、修改或删除约束。