MySQL --表的约束

1.空属性

两个值:null(默认的)和not null(不为空)
数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。

 select null;
 select 1+null;

在这里插入图片描述
示例:
创建一个班级表,包含班级名和班级所在的教室。
站在正常的业务逻辑中:
如果班级没有名字,你不知道你在哪个班级
如果教室名字可以为空,就不知道在哪上课

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

create table myclass(
class_name varchar(20) not null,
class_room varchar(10) not null);

desc myclass;

在这里插入图片描述

insert into myclass(class_name) values('class1');

在这里插入图片描述
可以看到,只插入class_name是失败的,因为class_room设定为非空,如果不插入class_room又不设置默认值的话就会插入失败。

2.默认值

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

示例:

create table tt10 (
name varchar(20) not null,
age tinyint unsigned default 0,
sex char(2) default '男'
);
desc tt10;

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

insert into tt10(name) values('zhangsan');
select * from tt10;

在这里插入图片描述
注意:只有设置了default的列,才可以在插入值的时候,对列进行省略

3.列描述

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

示例:

 create table tt12 (
name varchar(20) not null comment '姓名',
age tinyint unsigned default 0 comment '年龄',
sex char(2) default '男' comment '性别'
);

注意:not null和defalut一般不需要同时出现,因为default本身有默认值,不会为空
在这里插入图片描述

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

desc tt12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gsfl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值