MySQL数据库----约束

本文详细介绍了数据库中的六种主要约束:主键约束(primarykey)确保记录的唯一性,外键约束(foreignkey)建立表间关联,非空约束(notnull)限制字段不可为空,唯一性约束(unique)保证字段值不重复,自增约束(auto_increment)自动递增字段值,以及默认约束(default)设定字段默认值。了解这些约束对于数据库设计和优化至关重要。

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

1. 主键约束

  • 主键约束关键字:primary key
  • 主键用于唯一的标识一条记录,要求每一条记录的主键值都不相同,且是非空值
  • primary key会自带not null 和 unique
  • 设置主键约束后会自动带上索引,通过主键查询记录能提高效率
  • 一个表中只能设置一个主键,但主键可以仅包含一个字段,也可以包含多个字段
#primary key用例
create table world.city(id int primary key);
create table world.city(id int, primary key(id));
create table world.city(id int, name char(35), primary key(id, name));

2. 外键约束

  • 外键约束关键字:foreign key
  • 设置外键的字段是且必须是相关联的某一个表的主键字段
  • 外键可以加强两个表的相关性,记录的外键值必须在相关表的主键值中出现过
  • 外键值可以为空
#foreign key用例
create table world.country(code char(3), name char(52), PRIMARY KEY (code));

create table world.city(id int AUTO_INCREMENT, countrycode char(3), PRIMARY KEY (id), foreign key(countrycode) references world.country (code));

3. 非空约束

  • 非空约束关键字:not null
  • 设置非空约束后,将不允许该字段的值为NULL
#not null用例
create table world.city(id int not null);

4. 唯一性约束

  • 唯一约束关键字:unique
  • 设置唯一性约束的字段中的值不能重复出现
  • MySQL中NULL表示没有值,因此即使有唯一性约束,一个字段也可以有多个NULL
#unique用例
create table world.city(id int unique);

5. 自增约束

  • 自增约束关键字:auto_increment
  • 设置自增的字段,将自带not null属性,插入时如果不主动赋值,将在存在过的记录的基础上,找到最大值加1
  • 一个表只能设置一个auto_increment约束
  • 设置自增约束的字段,必须是整数类型,必须同时设置primary key或unique

6. 默认约束

  • 默认约束关键字:default
  • 通过默认约束可以设置字段的缺省值
#default用例
create table world.city(id int default null);

7. 变更约束性

7.1 主键、外键、唯一性

#增加约束
alter table 表名 add constraint 约束名 primary key|foreign key|unique (列名);

#删除约束
alter table 表名 drop primary key;
alter table 表名 drop index 约束名; 

7.2 自增、非空、默认

#修改约束,修改后会消除原有约束,更新为设置的约束
alter table modify 列名 列类型 auto_increment|not null|default;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值