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