数据约束
1. NOT NULL非空约束,规定某个字段不能为空。
创建表时添加约束
CREATE TABLE student(
id INT,
name VARCHAR(20) NOT NULL -- name为非空
);
创建完表后,添加约束
ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
2.UNIQUE 唯一约束,规定某个字段在整个表中是唯一的。
创建表时添加约束
CREATE TABLE student(
id INT UNIQUE -- 唯一约束
);
创建完表后,添加约束
ALTER TABLE student MODIFY id INT UNIQUE;
3. PRIMARY KEY 用于唯一标识表中的每一行数据。主键的值不能重复且不能为空,一个表只能有一个主键。
创建表时添加约束
CREATE TABLE student(
id INT PRIMARY KEY
);
创建完表后,添加约束
ALTER TABLE student MODIFY id INT PRIMARY KEY;
-4.FOREIGN KEY 用于建立表与表之间的关联关系。外键约束将一个表的列与另一个表的主键或唯一键进行关联。
创建表时添加约束
CREATE TABLE 表名(
....
外键列
CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)
);
创建完表后,添加约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
4.CHECK 限制列中数据的取值范围,确保满足特定条件的数据被插入或更新。
CHECK 约束在MySQL中所用储存引擎都不支持该约束,可以写CHECK 约束,但会忽略它的作用,因此在MySQL中可以使用触发器或使用枚举类型
5.DEFAULT 为列提供默认值,避免插入新记录时需要手动指定每个列的值。
创建表时添加约束
CREATE TABLE student(
id INT DEFAULT ‘默认值’
);
创建完表后,添加约束
ALTER TABLE student MODIFY id INT DEFAULT ‘默认值’ ;