你的位置:首页 > 数据库

[数据库]Mysql学习(慕课学习笔记5)约束


约束类型:

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的记录也被删除

对一个数据列建立的约束,称为列级约束

对多个数据列建立的约束,称为表级约束