约束类型:
1、NOT NULL (非空约束)
2、PRIMARY KEY(主键约束)
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
(Auto_increment 自动编码 )
3、UNIQUE KEY(唯一约束)
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值
每张数据表可以存在多个唯一约束
向带有唯一约束的username字段插入相同的内容时,系统会提示错误
DEFAULT(默认约束)
对sex字段添加默认约束
当sex字段为空时系统默认将其记录为3
FOREIGN KEY(外键约束)
保持数据一致性,完整性
实现一对一或一对多关系
Mysql的配置文件
Default_storage-engine=INNODB
创建父表
存储在INNODB
SHOW CREATE TABLE province;
创建子表
FOREIGN KEY(pid) REFERENCES prvince(id)
父表参照列没有创建索引
外键不存在索引的话,mysql将自动创建
外键约束的参照操作
Cascade 从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL 从父表删除或更新行,并设置子表中的外键列为NULL
Restrict 拒绝对父表的删除或更新操作
No action 标准SQL的关键字,在MYSQL中与restrict相同
进行父表的添加,看子表的变动
删除主表province中id=3的记录
子表user1中pid为3的记录也被删除
对一个数据列建立的约束,称为列级约束
对多个数据列建立的约束,称为表级约束