MySQL中的约束

一、约束概述

数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。


二、主键约束(Primary Key) PK

  • 单一主键 使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。
  • 联合主键 使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

2.1 创建表时添加主键约束

使用DDL语句

create table 表名(

列名1  数据类型 primary key,

列名2 数据类型

);

2.2 修改表时添加主键约束

使用DDL语句

ALTER TABLE 表名 ADD PRIMARY KEY(列名);

2.3 主键自增长

使用DDL语句

alter table 表名 modify 主键 类型 auto_increment;

  • 一个表中只能有一个列为自动增长。
  • 自动增长的列的类型必须是整数类型。
  • 自动增长只能添加到具备主键约束与唯一性约束的列上。
  • 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束。

使用Navicat添加主键 


2.4 删除主键

使用DDL语句

ALTER TABLE 表名 DROP PRIMARY KEY;

注意: 删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除主键。 

使用Navicat

 


三、外键约束(Foreign Key) FK

  • 外键指向的主表的字段,要求是primary key 或者是 unique
  • 表的存储引擎是innodb,这样的表才支持外键
  • 外键字段的类型要和主键字段的类型一致(长度可以不同)
  • 从表外键字段的值,必须在主键字段出现过,或者为null

3.1 添加外键约束

使用DDL语句

ALTER  TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN  KEY( 列名 ) REFERENCES 参照的表名 (参照表的列名);

使用Navicat添加外键约束

3.2 删除外键约束 

使用DDL语句

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

使用Navicat删除外键约束 

 


四、唯一性约束(Unique)

4.1 添加唯一性约束

使用DDL语句添加唯一性约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名); 

 使用Navicat添加唯一性约束

 

4.2 删除唯一性约束

使用DDL语句删除唯一性约束

ALTER TABLE 表名 DROP KEY 约束名; 

使用Navicat删除唯一性约束


五、非空约束(Not Null)

5.1 添加非空约束

使用DDL语句添加非空约束

 ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

使用Navicat添加非空约束 


5.2 删除非空约束 

使用DDL语句删除非空约束

ALTER TABLE 表名 MODIFY 列名 类型 NULL;

使用Navicat删除非空约束


六、检查约束(Check)

七、查询表中的约束信息

SHOW KEYS FROM 表名; 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐晓率

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

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

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

打赏作者

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

抵扣说明:

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

余额充值