Mysql学习笔记十一--约束

1. 约束的基本介绍

约束用于确保数据库的数据满足特定的商业规则。
在mysql中,约束包括:not null、unique、primary key 、 foreign key 和 check 5种

2. primary key 主键的基本使用

Mysql学习笔记十一--约束_第1张图片
用于唯一的标示表行的数据,当定义主键约束后,该列不能重复
主键使用的细节讨论:

  1. primary key 不能重复而且不能为null

  2. 一张表最多只能有一个主键,但可以是复合主键
    Mysql学习笔记十一--约束_第2张图片
    在这里插入图片描述

  3. 主键的指定方式有两种:1. 直接在字段名后指定:字段名 primary key / 2. 在表定义最后写 primary key(列名);
    Mysql学习笔记十一--约束_第3张图片

  4. 使用 desc 表名,可以看到 primary key 的情况。
    Mysql学习笔记十一--约束_第4张图片
    Mysql学习笔记十一--约束_第5张图片

!!!在实际开发中每个表往往都有一个主键

3. not null(非空)

如果在列上定义了 not null ,那么当插入数据时,必须为列提供数据。
Mysql学习笔记十一--约束_第6张图片

4. unique(唯一)

当定义了唯一约束后,该列值是不能重复的。
在这里插入图片描述

  1. 如果没有指定 not null ,则 unique 字段可以有多个 null
  2. 一张表可以有多个 unique 字段
    Mysql学习笔记十一--约束_第7张图片

5. foreign key(外键)

用于定义主表和从表之间的关系:外键约束要定义在从表上, 主表则必须具有主键约束或是 unique 约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为 null
在这里插入图片描述
Mysql学习笔记十一--约束_第8张图片
Mysql学习笔记十一--约束_第9张图片
细节说明:

  1. 外键指向的表的字段,要求是 primary key 或者是 unique
  2. 表的类型是 innodb,这样的表才支持外键
  3. 外键字段的值,必须在主键字段中出现过,或者为 null 【前提是外键字段允许为 null】
  4. 一旦建立主外键的关系,数据不能随意删除了。

check

用于强制行数据必须满足的条件,假定在 sal 列上定义了 check 约束,并且要求 sal 列值在 1000-2000 之间如果不在1000-2000 之间就会提示出错。
在这里插入图片描述
Mysql学习笔记十一--约束_第10张图片

1.自增长基本介绍

在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长。
在这里插入图片描述
Mysql学习笔记十一--约束_第11张图片

示例说明

1.创建表
在这里插入图片描述
2. 测试自增长的使用
Mysql学习笔记十一--约束_第12张图片

自增长使用细节:

  1. 一般来说自增长是和 primary key 配合使用的
  2. 自增长也可以单独使用【但是需要配合一个 unique】
  3. 自增长修饰的字段为整数型的(虽然小数也可以但是非常非常少这样使用)
  4. 自增长默认从 1 开始,你也可以通过如下命令修改 alter table 表名 auto_increment = xxx;
  5. 如果你添加数据时,给自增长字段(列)指定的有值,则以指定的值为准,后面插入的值在你指定的值以后自增。
  6. 如果指定了自增长,一般来说,就按照自增长的规则来添加数据,而不自己手动指定。

你可能感兴趣的:(mysql,学习,数据库)