MySQL表的约束

表的约束

约束的作用就是通过一定的手段限制别人不要向表中乱写入数据,数据类型就是约束条件的一种。比如往bit类型列插入字符串这种错误的行为就会被约束。

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。

常见的表的约束有,空属性,默认值,列描述,主键,唯一键,外键约束等等。

空属性

空属性有两个值:

  • null 允许为空
  • not null 不允许为空
  • 数据库默认字段基本都是允许为空的,但在实际开发中我们要尽可能保证字段不为空,因为空值无法参与运算。

如果要让某个字段不允许为空,在创建表的时候就可以给对应字段设置not null属性。

使用示例

  1. 创建一个用户表,包含用户姓名和性别。
    在正常的逻辑角度上,每个人都有姓名和性别,所以这里可以将他们设置为非空属性。
create table user_tb(
    name varchar(20) not null,
    sex set('男','女') not null
]);

image.png
插入数据时,必须插入姓名和性别,只插入一个就会错误。

image.png

默认值

和C++语言的缺省值是一样的。

  • 如果某一个字段会经常性的出现某个值,那么就可以考虑将这个值设置成该字段的默认值。
  • 向表中插入数据时如果不给带有默认值的字段赋值,那么就会使用默认值进行插入。

使用示例

创建一个用户表,性别默认是男,不指定插入就是不男的。

create table user_tb(
    name varchar(20) not null,
    sex char(2) default '男'
);

image.png
向表中添加数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++下等马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值