MySQL数据库中的约束和default

约束

MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。
约束分为字段级别约束和表级别约束:
- 字段级约束:只为单个字段添加约束;
- 表级约束:为一个或多个字段添加约束

primary key(主键特点是不可以为空,不可以重复)

#创建一个表
create table user(
id char(17) primary key comment '主键',
user_name varchar(17) unique comment '用户名'
)
#添加信息
insert into user(id,user_name) values (null,'444')	#出错,因为主键不能为空

输出结果为
在这里插入图片描述

#再添加如下信息
insert into user(id,user_name) values ('null','222')
insert into user(id,user_name) values ('','333')	#可以添加成功,与第一条语句中的null有差别

输出结果为

#再添加如下数据
insert into user(id,user_name) values ('null','666')	#主键值为null值,表中已经存在一个,所以不可以重复

在这里插入图片描述

unique(可以为空,不可以重复,但空值可以重复)

#创建一个字段与上表相同的表,添加如下信息
insert into user(id,user_name) values ('666','666')		#该数据添加成功
insert into user(id,user_name) values ('777','666')		#添加不成功,错误提示如下,因为设置了unique约束,不能重复

错误提示为
在这里插入图片描述

#再添加如下信息,均可以添加成功,为空时可以重复
insert into user(id,user_name) values ('888',null)
insert into user(id,user_name) values ('999',null)
insert into user(id,user_name) values ('000',null)

表示中数据为
在这里插入图片描述

not null

# 首先创建一个表
create table user_info(
id char(36) primary key comment '主键',
user_name varchar(17) unique comment '用户名',
password varchar(15) not null comment '密码'
)
# 添加信息
insert into user_info(id,user_name,password) values ('1111','1111','')  #添加的是空字符(有字符),不为空,可以添加。
insert into user_info(id,user_name,password) values ('3333','3333333','null')	#添加的是null字符,添加成功。
insert into user_info(id,user_name,password) values ('5555','5555',null)	#设置为空(没有字符)时出错,由于限制了not null所以不能是null

错误提示为
在这里插入图片描述
添加完成后的表中结果为
在这里插入图片描述

auto_increment

#先创建一个表
create table publisher(
id int(17) primary key auto_increment comment '主键',
user_name varchar(17) comment '用户名'
)
#添加信息
insert into publisher (user_name) values ('出版社')	#添加时,id根据前一个id值自动增长,添加4次后表中结果为

在这里插入图片描述

#只有四条信息时,可以自己添加第五条数据的id
insert into publisher (id,user_name) values ('7','教育出版社')	#运行结果如下

在这里插入图片描述

#再次添加两次该条数据,从上一个id值开始自增
insert into publisher (user_name) values ('教育出版社')

在这里插入图片描述

default

#先创建一个表
create table user(
id int(17) primary key comment '主键',
user_name varchar(17) unique comment '用户名',
password varchar(15) comment '密码',
sex char(2) default 0 comment '性别'
)
#添加如下数据,不设置性别
insert into user (id,user_name,password) values ('3333','3333333','188')

运行结果为 (性别添加了默认值,所以会有默认为0)
在这里插入图片描述

#可以将默认值设置为0或者1
insert into user (id,user_name,password,sex) values ('111','111','188',0)
insert into user (id,user_name,password,sex) values ('222','222','188',1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值