【MySQL】表的约束——空属性、默认值、列描述、zerofill、主键、自增长、唯一键、外键

MySQL

在这里插入图片描述

  

表的约束

  MySQL中的表的约束是一种规则,用于限制或保护表中数据的完整性和合法性。约束可以确保数据在插入、更新或删除时满足特定的条件,从而维护数据的正确性和一致性。

1. 空属性

  两个值:null(默认的)和not null(不为空)

  数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。

创建一个数据表其中的id1为NULL,id2为NOT NULL:

create table test1(id1 int null,id2 int not null);

在这里插入图片描述
  

查看表中的结构:

desc test1;

在这里插入图片描述

我们看到对于数据id1,是可以填写NULL值的,而id2则无法填写空值。

  

向test1插入不同的数据并且打印:

insert into test1(id1,id2) values(10,20); // 插入成功
 
insert into test1(id2) values(20); // 插入成功,id1可以为空值

insert into test1(id1) values(20); // 插入失败,id2不可以是空值
//ERROR 1364 (HY000): Field 'id2' doesn't have a default value

在这里插入图片描述

在这里插入图片描述

  所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。这就是“约束”。

  

2. 默认值

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

  注意:not null和defalut一般不需要同时出现,因为default本身有默认值,不会为空。

创建一个表,包含不能为空的姓名,默认值为0的年龄,默认值为男的性别:

mysql> create table test2(
    -> name varchar(20) not null,
    -> age tinyint unsigned default 0,
    -> sex char(2) default '男'
    -> );

在这里插入图片描述
  

查看表中的结构:

desc test2;

在这里插入图片描述

  可以看到我们的年龄和性别都成功的设置好了默认值0和男。当我们在插入数据的时候不给该字段赋值,就使用默认值。

  

向表中插入数据并打印:

mysql> insert into test2(name,age,sex) values('张三',18,'男');
mysql> insert into test2(name,age,sex) values('小红',20,'女');
mysql> insert into test2(name,age) values('李四',22); // 只使用sex的默认值
mysql> in
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鳄鱼麻薯球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值