讲给我学医女朋友的mysql表的约束哦3(一站到底,从简到难)

上一篇https://blog.csdn.net/a15929748502/article/details/80607707的最后我提到我要把表的约束告诉大家,这一次我们就来共同探索表的约束。真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。同样这次也是通过一个案例来讲解。

首先我先要构造一个数据库名为student,包含一个班,表中存有相关信息。

这一步里我要为大家介绍的是以下几种约束,希望大家有一个整体的认识。

首先建一张表,理论要结合实际嘛

在这里ID的(comment)描述是学号   是这个表中的主键(primary  key),是一个自增的值

name 是不可以为空的(not null)描述是姓名

age 的默认值(default)是18 描述为年龄

email   设为唯一值,不可以相同,却可以为空,描述为邮箱


1)空属性

两个值:null(默认的)和not null(不为空) 数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参 与运算。一个班级表,学生的姓名就不可以为空,经此约束,如果忘记插入就会报错,从而起到了从业务逻辑角度保证数据的正确性。如下


2)默认值
默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选

择性的使用默认值。如已知我统计的班里大部分的同学年龄都是18岁,就可以把十八岁设置成年龄的默认值。

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




注意: set和enum不能设置默认值。

3)列描述

列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了 解。

注意;通过desc查看不到注释信息:


通过show可以看到:


4)主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,主键所在的列是整数类型。 一张表中最多只能有一个主键

如下可以证明不能重复


 第一种

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

第二种

在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为 主键,可以使用复合主键。

第三种

当表创建好以后,可以再次追加主键

5)自增长
auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作, 得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
自增长的特点:
任何一个字段要做自增长,前提是本身是一个索引(key一栏有值) 自增长字段必须是整数

一张表最多只能有一个自增长

6)唯一键

一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有
多个字段需要唯一性约束的问题。

    唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。


猜你喜欢

转载自blog.csdn.net/a15929748502/article/details/80650808