MySQL新手指南——约束

本文介绍了数据库中的约束类型,包括主键约束(不允许空值且唯一),主键自增特性(自动递增编号),非空约束(字段值不能为空),以及默认约束(字段可设置默认值)。通过示例展示了在创建表时及后期修改如何添加和删除这些约束。
摘要由CSDN通过智能技术生成

约束

约束作用: 限制数据的插入和删除

主键约束

知识点:
主键约束关键字: primary key
​
主键约束特点: 限制主键插入的数据不能为空,不能重复
​
建表的时候添加主键约束:  create table 表名(主键名 主键类型 primary key , 其他字段...);
​
注意: 一个表中只能有一个主键
示例
# 1.主键约束
# 特点: 数据不能为空不能重复
# 添加主键约束方式1: 先有表,再单独添加(了解)
alter table stu1 add primary key (id); # 报错,因为stu1中有重复数据以及空数据
truncate stu1; # 清除数据
alter table stu1 add primary key (id); # 执行成功
desc stu1;

# 添加主键约束方式2: 建表的时候直接添加(建议)
# 创建表
create table stu2(
    id int primary key ,
    name varchar(100),
    age int
);
# 查看表结构
desc stu2;
# 演示主键约束的特点: 限制对应数据不能重复不能为空
insert into stu2(id, name, age) VALUES (1,'张三',18); # 成功
insert into stu2(id, name, age) VALUES (1,'张三',18); # 报错,因为数据重复
insert into stu2(id, name, age) VALUES (2,'李四',28); # 成功
insert into stu2(id, name, age) VALUES (null,'王五',38); # 报错,因为数据是null
insert into stu2(id, name, age) VALUES (0,'王五',38); # 成功,id就是0

# 演示如何删除主键
alter table stu1 drop primary key;
# 查看表结构
desc stu1;
# 注意: 删除主键默认只删除了唯一约束,非空约束依然存在
# 如何删除非空约束? 使用change
alter table stu1 change id id int;

主键自增

知识点:
自增关键字: auto_increment
​
自增特点: 默认从1开始,每次自动加1  
注意: 如果插入数据的时候指定了id字段,可以使用null或者0占位表示自动使用自增
​
建表的时候添加主键自增约束:  create table 表名(主键名 主键类型 primary key auto_increment , 其他字段...);
示例:
# 2.主键设置自增
# 添加自增方式1: 建表后添加(了解)
alter table stu1 change id id int primary key auto_increment;
# 如果想直接加自增,前提表中已经设置了主键
alter table stu2 change id id int auto_increment;

# 添加自增方式2: 建表时添加(建议)
# 创建表
create table stu3(
    id int primary key auto_increment,
    name varchar(100),
    age int
);
# 查看表结构
desc stu3;

# 演示主键自增的特点: 主键自动生成编号
# 如果主键设置了自增null和0只是占位符,都代表默认使用自增
insert into stu3(id, name, age) VALUES (null,'张三',18); # 成功,id自增
insert into stu3(id, name, age) VALUES (0,'李四',28); # 成功,id自增

# 如果不想使用null,0占位,自动使用自增,那么前面就不要指定id
insert into stu3(name, age) VALUES ('王五',38); # 成功

delete和truncate区别

知识点:
delete和truncate的区别?
    共同点: 都能删除表中所有数据
    不同点:
        delete删除所有数据: 自增顺序保留,下次再插入的时候继续自增
        truncate删除所有数据: 自增顺序重置,下次再插入数据的时候从1重新开始自增

非空约束

知识点:
非空约束关键字: not null
​
非空约束特点: 限制对应数据不能为空null
​
建表的时候添加非空约束:  create table 表名(主键名 主键类型 primary key ,字段名 字段类型 not null , 其他字段...);
​
注意: 一个表中可以有多个非空约束
示例:
# 3.非空约束
# 创建表
create table stu4(
    id int not null,
    name varchar(100) not null,
    age int
);

# 查看表结构
desc stu4;

# 演示非空约束特点: 限制数据不能为空null
insert into stu4 (id, name, age) VALUES (1,'张三',18); # 成功
insert into stu4 (id, name, age) VALUES (null,null,null); # 报错,因为id和name不能为空


# 了解建表后添加和删除非空约束
# 添加非空约束
alter table stu4 change age age int not null;
# 删除非空约束
alter table stu4 change age age int;

唯一约束

知识点
唯一约束关键字: unique
​
唯一约束特点: 限制对应的数据不能重复,可以为空
​
建表的时候添加唯一约束:  create table 表名(主键名 主键类型 primary key ,字段名 字段类型 unique, 其他字段...);
​
注意: 一个表中可以有多个唯一约束

默认约束

知识点:
默认约束关键字: default
​
默认约束特点: 可以提前给字段设置默认值
​
建表的时候添加默认约束:  create table 表名(主键名 主键类型 primary key ,字段名 字段类型 default 默认值, 其他字段...);
​
注意: 一个表中可以有多个默认约束
示例:
# 5.默认约束
# 创建表
create table stu6(
    id int primary key auto_increment,
    name varchar(100) default 'admin',
    pwd varchar(100) default '123456'
);
# 查看表结构
desc stu6;

# 演示默认约束特点: 如果用户没有指定字段值,可以使用提前设置好的默认值
insert into stu6(id) values (1);
insert into stu6(name) values ('张三');
insert into stu6(name,pwd) values ('李四','abcde');


# 了解建表后添加和删除默认约束
create table stu7(
    id int primary key auto_increment,
    name varchar(100) ,
    pwd varchar(100)
);
# 添加默认约束
alter table stu7 change name name varchar(100) default 'admin';
alter table stu7 change pwd pwd varchar(100) default '123456';
# 删除默认约束
alter table stu7 change name name varchar(100);
alter table stu7 change pwd pwd varchar(100);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值