mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第1张图片

约束

约束保证数据的完整性和一致性。

约束分为表级约束和列级约束。

只针对某一个字段 列级约束

针对两个或两个以上的字段 表级约束

约束类型包括:

NOT NULL(非空约束)

PRIMARY KEY(主键约束)

UNIQUE KEY(唯一约束)

DEFAULT(默认约束)

FOREIGN KEY(外键约束)

FOREIGN KEYp

保持数据的一致性,完整性

实现一对一 或者 一对多关系

这也是很多数据库被称为关系型数据库的原因

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第2张图片

子表:具有外键列的表。

父表:子表所参照的表。

子表和父表必须有相同的存储引擎,而且必须为InnDB

外键列: 曾加过for in 关键词的列

编辑数据表默认存储引擎

mysql 配置文件

default-storage-engine = INNODB

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第3张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第4张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第5张图片

id为参照列

pid 为外键列

查看索引

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第6张图片

id字段上已经创建索引,所以说我们的参照列已经有索引

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第7张图片

在users表中存在两个索引,一个是主键索引,在id字段上,因为我们已经加过主键约束;另外在pid字段上系统已经自动的创建了索引。

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

外键约束的参照操作

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第8张图片

这四个选项是指在在进行了外键约束的创建以后,在更新表的时候,子表是否也进行相应的操作。

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第9张图片

在外键约束当中,在实际的开发过程中,我们很少使用物理的外键约束,很多都去使用逻辑的外键约束,因为物理的外键约束只有INNODB这种引擎才会支持,像我们另外的一种引擎MYISAM的引擎则不支持,反过来说,如果我想创建的数据表,假设存储引擎为MYISAM,而且又想使用外键约束的话,其实是不可能实现的,所以说,我们在实际的项目开发中,我们不去定义物理的外键,所谓的逻辑外键指的是就是我们在定义两张表的结构的时候,我们是按照存在的某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义。

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第10张图片

修改数据表

添加删除列

修改数据表 无非列的添加列的删除,约束的添加 约束的删除

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第11张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第12张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第13张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第14张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第15张图片

添加约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第16张图片

添加唯一约束

唯一约束可以有多个 而主键约束只能有一个

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第17张图片

添加外键约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第18张图片

添加和删除默认约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第19张图片

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第20张图片

删除主键约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第21张图片

删除唯一约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第22张图片

删除外键约束

mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表_第23张图片

修改列定义

参考

你可能感兴趣的:(mysql针对某个表记录操作日志_MySQL学习记录:约束以及修改数据表)