MySQL约束简介

约束能保证数据的完整性和一致性。
约束类型:主键约束、唯一约束、非空约束、默认约束、外键约束

主键约束(PRIMARY KEY)

自动编号(AUTO_INCREMENT)

  • 适用范围:整型,小数位数是0的浮点型
  • 自动编号必须与主键组合使用(主键不一定和它一起使用)
  • 默认情况下,起始值为1,每次的增量为1

主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。(单一主键和复合主键)

  • 每张数据表只能存在一个主键
  • 主键保证记录的唯一性
  • 主键自动为NOT NULL
  • 自动编号必须和主键一起使用

唯一约束(UNIQUE KEY)

唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。

  • 唯一约束可以保证记录的唯一性
  • 唯一约束的字段可以为空值
  • 每张数据表可以存在多个唯一约束

非空约束(NOT NULL)

非空约束即限制必须为某个列赋值。

默认约束(DEFAULT)

当插入记录时,没有明确的为字段赋值,则自动赋予默认值。

外键约束(FOREIGN KEY)

FPREIGN KEY(子表外键名) REFERENCES 父表名(父表参照字段)

  • 父表和子表必须使用相同的存储引擎,禁止使用临时表。
  • 数据表的存储引擎只能为InnoDB。
  • 外键列和参照列必须具有相似的数据类型。数字的长度或是否有符号位必须相同,但是字符的长度可以不同。
  • 外键列和参照列必须创建索引。如果外键列不存在索引,MySQL将自动创建索引。

外键约束的参照操作

FOREIGN KEY(子表外键名) REFERENCES tb_name(父表参照字段) [ON DELETE CASCADE]

  • CASCADE:从父表删除或更新行,则自动删除或更新子表中的匹配行
    删除主表时自动删除从表。删除从表,主表不变。
    更新主表时自动更新从表。更新从表,主表不变。
  • SET NULL:父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表的外键列没有指定为NOT NULL
    删除主表时自动更新从表值为NULL。删除从表,主表不变。
    更新主表时自动更新从表值为NULL。更新从表,主表不变。
  • RESTRICT(NO ACTION):拒绝对父表的删除或更新操作
    当从表记录不存在,主表才能删除。删除从表,主表不变。
    当从表记录不存在,主表才能更新。更新从表,主表不变。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 3,897评论 0 1
  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 10,701评论 2 46
  • 记的小时候妈总是往田里跑不爱做家务,妈妈干起地里的活来可快可麻利了,父亲腿有点不好,小时候落下的毛病,所以家里的重...
    梅兰竹菊修身养性阅读 1,696评论 0 0
  • 今晚结束以后,就是一个新的我开始了。所以今晚吃得特别特别饱,以后记住了这种饱的感觉,以后再也不允许自己吃这样饱了。...
    大大的小小啊阅读 1,040评论 0 0
  • 元宝现在每回出去玩,乘电梯回家,出电梯门时他都会和还在电梯里的人挥手拜拜,同小朋友告别也会挥手拜拜,很有礼貌。如果...
    中括号阅读 1,007评论 0 0