Mysql认识(三)

 

目录

 

字段属性


字段属性

主键(primary key)

一张表只能有一张主键,特点:唯一且不能为空,在实际开发中一般都会使用id这种逻辑字段做为每张表的主键

自增(auto increment)

自增长auto_increment 对应字段不给值 或者说给默认值 则会进行自动增长 自增只能针对数字 自增有个前提 本身必须是一个索引 一张表只能有一个自增长 所以自增长一般都是配合主键(id)使用;

唯一键(unique key)

唯一键(unique key)一张表往往有很多字段数据不能重复,让数据具有唯一性 ,但是一张表只能有一个主键,所以,唯一键就顺势而生 那么什么是唯一键呢 ? 唯一键的本质和主键差不多,唯一 键不能重复,但是唯一键与主键不同的地方是唯一键可以为空 假如唯一键不为空的话 那么与主键的约束作用是一致的 ;

外键(foreign key)

外键foreign key 不在自己表里面的键(key

创建外键的要求:

  • 创建外键要求字段本身就是一个索引 然后才能创建外键 如果这个字段本身并不是索引 那么 外键会先创建一个索引 然后在创建外键

  • 外键要求数据库的引擎必须是inndoDB 这样外键才有效果

  • 外键的字段类型必须和父表(外键指向的表)的主键类型一致

  • 外键的名字 不能重复

 外键的约束分为两种:

  • 对父表的约束

    • 父表数据不能随意删除或更新

  • 对子表的约束

    • 当子表插入一条父表不存在的数据的时候 会报错

外键的几种模式

  • restrict 默认

  • cascade 级联

    • 父表更新 子表更新 父表删除 子表删除

  • set null 置空

    • 父表更新 子表置空 父表删除 子表置空 (前提 支持为空)

索引 大部分的索引都是建立在字段上的 意义:

  1. 提升查询数据的效率

  2. 约束数据的有效性(唯一性)

你可能感兴趣的:(SQL)