MySQL数据库 —— 表的约束

目录

1. 空属性

2. 默认值

3. 列描述comment

4. zerofill

5. 主键primary key

6. 自增长auto_increment

7. 唯一键

8. 外键


为了更好的保证数据的合法性,对表进行约束。

1. 空属性

  • null(数据库默认)
  • not null(开发时,为了保证数据可以参与运算,尽可能设置不为空)

eg:插入数据时,没有给name插入数据,失败

2. 默认值

某一种数据会经常性的出现某个具体的值,可以在一开始就指定好默认值。

  • 默认值的生效

    • 数据在插入的时候不给该字段赋值,就使用默认值

3. 列描述comment

用来描述字段,便于理解字段的具体含义。

  • 无法通过desc看到注释信息,可以通过show

4. zerofill

自动补0造作,针对无符号整数。

对于设置了zerofill属性的字段,如果宽度小于设定的宽度,自动填充0

  • 在MySQL中实际存储的还是1,只是显示结果填充。

5. 主键primary key

用来唯一的约束该字段里面的数据

  • 特点:不可重复、不可为空、一张表最多有一个主键
  • 主键所在的列通常是整数类型
  • 如果有多个字段作为主 键,可以使用复合主键

eg:

  • 创建表的时候直接在字段上指定主键

  • 主键约束:不能为空、不能重复

  • 复合主键

  • 追加主键
alter table 表名 add primary key(字段列表)

  • 删除主键
alter table 表名 drop primary key;

6. 自增长auto_increment

当对应的字段自动的被系统触发,系统会进行当前字段中已有最大值+1的操作, 得到一个新的值。通常和主键搭配使用,作为逻辑主键

  • 特点:
    • 任何一个字段要做自增长,前提是本身是一个索引(key有值)
    • 自增长字段必须是整数
    • 一张表最多只能有一个自增长

7. 唯一键

类似于主键,为了解决多个字段需要唯一性约束的问题

  • 特点:不可重复,允许为空,一张表可以有多个唯一键

8. 外键

用于定义主表和从表之间的关系(必须有两个或两个以上的表),存储引擎必须为InnoDB。

  • 外键约束主要定义在从表上,主表上必须有主键约束或唯一键约束
  • 外键被定义后,外键列数据必须在主表的主键列存在或为null
  • 语法:
foreign key (从表中关联字段名) references 主表(被关联列) 

猜你喜欢

转载自blog.csdn.net/qq_42142477/article/details/88736803