Mysql学习(慕课学习笔记5)约束

时间:2022-10-15 07:14:43

约束类型:

1、NOT NULL (非空约束)

Mysql学习(慕课学习笔记5)约束

2、PRIMARY KEY(主键约束)

每张数据表只能存在一个主键

主键保证记录的唯一性

主键自动为NOT NULL

Mysql学习(慕课学习笔记5)约束

(Auto_increment  自动编码  )

3、UNIQUE KEY(唯一约束)

唯一约束可以保证记录的唯一性

唯一约束的字段可以为空值

每张数据表可以存在多个唯一约束

Mysql学习(慕课学习笔记5)约束

向带有唯一约束的username字段插入相同的内容时,系统会提示错误

Mysql学习(慕课学习笔记5)约束

DEFAULT(默认约束)

对sex字段添加默认约束

Mysql学习(慕课学习笔记5)约束

当sex字段为空时系统默认将其记录为3

Mysql学习(慕课学习笔记5)约束

FOREIGN KEY(外键约束)

保持数据一致性,完整性

实现一对一或一对多关系

Mysql的配置文件

Default_storage-engine=INNODB

创建父表

Mysql学习(慕课学习笔记5)约束

存储在INNODB

SHOW CREATE TABLE province;

Mysql学习(慕课学习笔记5)约束

创建子表

FOREIGN KEY(pid) REFERENCES prvince(id)

Mysql学习(慕课学习笔记5)约束

父表参照列没有创建索引

Mysql学习(慕课学习笔记5)约束

外键不存在索引的话,mysql将自动创建

Mysql学习(慕课学习笔记5)约束

外键约束的参照操作

Cascade 从父表删除或更新且自动删除或更新子表中匹配的行

SET NULL 从父表删除或更新行,并设置子表中的外键列为NULL

Restrict  拒绝对父表的删除或更新操作

No action 标准SQL的关键字,在MYSQL中与restrict相同

Mysql学习(慕课学习笔记5)约束

Mysql学习(慕课学习笔记5)约束

进行父表的添加,看子表的变动

Mysql学习(慕课学习笔记5)约束

删除主表province中id=3的记录

Mysql学习(慕课学习笔记5)约束

子表user1中pid为3的记录也被删除

Mysql学习(慕课学习笔记5)约束

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

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