数据库的五大约束
主键约束(PRIMARY KEY):确保某列必须要有唯一的标识符
唯一约束(UNIQUE):唯一性,可以空,但只能有一个
默认约束(DEFAULT):该数据的默认值
外键约束(FOREIGN KEY):需要建立两表间的关系
非空约束(NOT NULL):设置非空约束,该字段不能为空
主键
1、主键的注意事项
主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定需要自动增长
2、设置主键的方式
在定义列时设置:ID INT PRIMARY KEY
在列定义完之后设置:primary KEY(id)
外键
1、外键的注意事项
只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同,(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同)
2、设置外键的语法
CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 参照表 (参照字段) ON DELETE SET NULL ON UPDATE CASCADE 设置参照完整性
3、外键约束的参照操作
参照表的完整性操作:当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对;
参照操作可选值:
- RESTRICT拒绝参照表删除或更新参照字段;
- RESTRICT和NO ACTION相同,但这个指令只在mysql生效;
- CASCADE删除或更新参照表的参照字段时,外键表的记录同步删除更新;
- SET NULL 删除或更新参照表的参照字段时,外键表的外键设为NULL;
语法示例
1、添加主键约束
Alter table 表名
add Constraint 主键名
Primary key (字段)
2、 添加唯一约束
Alter table 表名
add Constraint 约束名
unique(字段)
3、添加默认约束
Alter table 表名
add Constraint 约束名
defaulf(默认内容)
for(字段名)
4、添加检查约束
Alter table 表名
add Constraint 约束名
check(字段表达)
5、添加外键约束
Alter table 表名
add Constraint 约束名
foreign key(字段)
references 表名(字段名)