目录
字段属性
主键(primary key)
一张表只能有一张主键,特点:唯一且不能为空,在实际开发中一般都会使用id这种逻辑字段做为每张表的主键
自增(auto increment)
自增长auto_increment
对应字段不给值 或者说给默认值 则会进行自动增长 自增只能针对数字 自增有个前提 本身必须是一个索引 一张表只能有一个自增长 所以自增长一般都是配合主键(id
)使用;
唯一键(unique key)
唯一键(unique key
)一张表往往有很多字段数据不能重复,让数据具有唯一性 ,但是一张表只能有一个主键,所以,唯一键就顺势而生 那么什么是唯一键呢 ? 唯一键的本质和主键差不多,唯一 键不能重复,但是唯一键与主键不同的地方是唯一键可以为空 假如唯一键不为空的话 那么与主键的约束作用是一致的 ;
外键(foreign key)
外键foreign key
不在自己表里面的键(key
)
创建外键的要求:
-
创建外键要求字段本身就是一个索引 然后才能创建外键 如果这个字段本身并不是索引 那么 外键会先创建一个索引 然后在创建外键
-
外键要求数据库的引擎必须是
inndoDB
这样外键才有效果 -
外键的字段类型必须和父表(外键指向的表)的主键类型一致
-
外键的名字 不能重复
外键的约束分为两种:
-
对父表的约束
-
父表数据不能随意删除或更新
-
-
对子表的约束
-
当子表插入一条父表不存在的数据的时候 会报错
-
外键的几种模式
-
restrict
默认 -
cascade
级联-
父表更新 子表更新 父表删除 子表删除
-
-
set null
置空-
父表更新 子表置空 父表删除 子表置空 (前提 支持为空)
-
索引 大部分的索引都是建立在字段上的 意义:
-
提升查询数据的效率
-
约束数据的有效性(唯一性)