约束
约束保证数据的完整性和一致性。
约束分为表级约束和列级约束。
只针对某一个字段 列级约束
针对两个或两个以上的字段 表级约束
约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
FOREIGN KEYp
保持数据的一致性,完整性
实现一对一 或者 一对多关系
这也是很多数据库被称为关系型数据库的原因
子表:具有外键列的表。
父表:子表所参照的表。
子表和父表必须有相同的存储引擎,而且必须为InnDB
外键列: 曾加过for in 关键词的列
编辑数据表默认存储引擎
mysql 配置文件
default-storage-engine = INNODB
id为参照列
pid 为外键列
查看索引
id字段上已经创建索引,所以说我们的参照列已经有索引
在users表中存在两个索引,一个是主键索引,在id字段上,因为我们已经加过主键约束;另外在pid字段上系统已经自动的创建了索引。
外键列不存在索引的话,mysql自动创建索引
外键约束的参照操作
这四个选项是指在在进行了外键约束的创建以后,在更新表的时候,子表是否也进行相应的操作。
在外键约束当中,在实际的开发过程中,我们很少使用物理的外键约束,很多都去使用逻辑的外键约束,因为物理的外键约束只有INNODB这种引擎才会支持,像我们另外的一种引擎MYISAM的引擎则不支持,反过来说,如果我想创建的数据表,假设存储引擎为MYISAM,而且又想使用外键约束的话,其实是不可能实现的,所以说,我们在实际的项目开发中,我们不去定义物理的外键,所谓的逻辑外键指的是就是我们在定义两张表的结构的时候,我们是按照存在的某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义。
修改数据表
添加删除列
修改数据表 无非列的添加列的删除,约束的添加 约束的删除
添加约束
添加唯一约束
唯一约束可以有多个 而主键约束只能有一个
添加外键约束
添加和删除默认约束
删除主键约束
删除唯一约束
删除外键约束
修改列定义
参考