自学内容网 自学内容网

MySQL表的约束

1、空属性

约束词:null/not null

  • 数据库默认字段为空,但有些字段不能为空,就要设成非空

示例:
在这里插入图片描述

2、默认值

约束词:default

示例:
在这里插入图片描述
默认值的生效:插入数据时不给该字段赋值,就会使用默认值。

注意:只有设置了default的列,才可以在插入值的时候,对列进行省略;
not null和defalut一般不需要同时出现,因为default本身有默认值,不会为空。

3、列描述

约束词:comment
列描述:没有实际含义,专门用来描述字段,会根据表创建语句保存,类似于代码注释。

示例:
在这里插入图片描述

通过desc查看不到注释信息:
在这里插入图片描述
通过show可以看到:
在这里插入图片描述

4、零填充

约束词:zerofill
零填充:是一种格式化输出,将int()中未显示的部分用0填充上,显示出来。

示例:
在这里插入图片描述
可以看到int(10),这个代表什么意思呢?整型不是4字节吗?这个10又代表什么呢?
其实没有zerofill这个属性,括号内的数字没有意义,设置为零填充才会显示出来。

设置零填充前:
在这里插入图片描述

设置零填充:
在这里插入图片描述
展示:
在这里插入图片描述
这次可以看到a的值由原来的1变成00001,这就是zerofill属性的作用:如果宽度小于设定的宽度(这里
设置的是5),自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。

5、主键

约束词:primary key
主键:primary key用来唯一的约束字段里面的数据,主键约束的字段内写入的数据不能重复,不能为空,一张表中最多只能有一个主键。

示例:

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

在这里插入图片描述

  • 当表创建好以后但是没有主键的时候,可以再次追加主键
alter table 表名 add primary key(字段列表);
  • 删除主键
alter table 表名 drop primary key;

复合主键:
创建表的时候,可以在所有字段之后,使用 primary key(主键字段列表) 来创建主键,如果有多个字段
作为主键,可以使用复合主键。
在这里插入图片描述

6、自增长

约束词:auto_increment
auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会赋予当前字段中已经有的最大值+1的值给它。通常和主键搭配使用,作为逻辑主键。

自增长的特点:

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

示例:
在这里插入图片描述

7、唯一键

约束词:unique
唯一键:设置unique的字段写入的数据不能重复,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较;一个表内可以设置多个unique。

示例:
在这里插入图片描述

8、外键

约束词:foreign key (字段名) references 主表(列)

示例:
在这里插入图片描述
如果将班级表中的数据都设计在每个学生表的后面,那就会出现数据冗余,所以我们可以设计成让 stu->class_id 和 myclass->id 形成关联的关系 => 外键约束

对上面的示意图进行设计:

  • 先创建主键表
    在这里插入图片描述
  • 再创建从表
    在这里插入图片描述

原文地址:https://blog.csdn.net/m0_74197455/article/details/144086163

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!