数据库---主要约束操作讲解

本文深入讲解数据库中的各类约束,包括主键、自增、唯一、非空、默认及外键约束。详细介绍每种约束的作用、应用场景及如何在SQL中实现它们,帮助读者全面理解并正确应用数据库约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库中的约束分为好多种。

  • 主键约束
  • 自增约束
  • 唯一约束
  • 非空约束
  • 默认约束
  • 外键约束

主键约束

能够唯一的确定一张表中的某个记录,我们通过给某个字段添加约束,就使得该字段不为空,不重复

create teble student(
	id int primary key; //primary key是主键关键字
	name varchar(20)
);

我们在使用insert向该表中插入元素时,第一个参数值不能重复,同时也不能为空。

//联合主键:只要两个字段加起来不重复就可以,
create teble student2(
	id int ;
	name varchar(20)
	primary key(id,name);//两个字段都为主键
);

insert into student values(1,'xiaobei');
insert into student values(2,'xiaobei'); //可以插入成功,因为两个组
							//件加起来没重复,但是任何一个主键都不能为空	

当我们在创建表的时候,忘记加主键约束怎么办,或者我们主键添加错误,想删除怎么办?

  • 外部增加主键
    alter table 数据表名称 add primary key(主键参数);
    在这里插入图片描述
  • 删除主键
    alter table 数据表名称 drop primary key;
    在这里插入图片描述
  • 修改主键
    alter table 数据表名称 modify 目标字段 字段类型 primary key;
    在这里插入图片描述
    在这里插入图片描述

自增约束

auto_increment自增关键字,用于管控字段,使得其自动增长。

create table student3(
	id int primary key auto_increment;
	name varchar(20);
);
insert into student3 (name) values('xiaobei');

在这里插入图片描述
由于name不是主键约束,所以可以插入多个相同的值,其中id自增。
在这里插入图片描述

唯一约束

约束字段的值不能重复。

  • 创建表的时候直接添加。
    在这里插入图片描述
    同时,唯一约束也可以写成组合约束,组合在一起只要不唯一就可以。
  • 在表外添加
    alter table 数据表名称 add unique(字段);
    alter table 数据表名称 madify 字段 字段类型 unique;
    在这里插入图片描述

我们可以试试,看唯一约束的效果怎么样,是不是唯一的呢?
在这里插入图片描述
插入失败!

  • 删除唯一约束
    alter table 数据表名称 drop index 唯一约束字段;
    在这里插入图片描述

非空约束

约束一个字段不能为空。

  • 创建时定义字段后面 not null
    在这里插入图片描述
    在这里插入图片描述

默认约束

当我们插入字段的时候,如果没有传值,则使用默认约束。
在字段后面加上default 默认数值表示该值为默认约束。
在这里插入图片描述
注意:当我们传入值,就不会使用默认值

外键约束

外键约束涉及两个表,一个是主表,一个是副表。
foreign key(副键) references 主表名称(主键);

  • 主表:
    在这里插入图片描述
  • 副表:
    在这里插入图片描述
    副表依赖主表,需要在主表中将副表依赖的字段设置为主键。

我们在class表(主表)中插入一些元素信息。
在这里插入图片描述
student副表插入信息。
在这里插入图片描述
插入失败。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值