mysql约束常用语法命令

本文详细解析了SQL中的五种主要约束类型:主键约束、主键自动增长约束、唯一约束、非空约束及外键约束。涵盖了每种约束的定义、特点、使用场景以及如何在建表时或建表后进行添加、修改和删除的操作。

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

约束的分类

约束说明
PRIMARY KEY主键约束
PRIMARY KEY AUTO_INCREMENT主键、自动增长
UNIQUE唯一约束
NOT NULL非空约束
FOREIGN KEY外键约束
FOREIGN KEY ON UPDATE CASCADE外键级联更新
FOREIGN KEY ON DELETE CASCADE外键级联删除

1主键约束

  • 主键约束特点
    • 主键约束包含:非空和唯一两个功能
    • 一张表只能有一个列作为主键
    • 主键一般用于表中数据的唯一标识
  • 建表时添加主键约束
-- 标准语法
-- 主键默认唯一,添加重复数据,会报错
-- 主键默认非空,不能添加null的数据
CREATE TABLE 表名(
	列名 数据类型 PRIMARY KEY,
    列名 数据类型,
    ...
);
  • 删除主键
-- 标准语法
ALTER TABLE 表名 DROP PRIMARY KEY;
  • 建表后单独添加主键
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY;

2.主键自动增长约束

  • 建表时添加主键自增约束
-- 标准语法
-- 添加null值,会自动增长
CREATE TABLE 表名(
	列名 数据类型 PRIMARY KEY AUTO_INCREMENT,
    列名 数据类型,
    ...
);
  • 删除自动增长
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;
  • 建表后单独添加自动增长
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;

3.唯一约束

  • 建表时添加唯一约束
-- 标准语法
3-- 添加重复数据,会报错
CREATE TABLE 表名(
	列名 数据类型 UNIQUE,
    列名 数据类型,
    ...
);
  • 删除唯一约束
-- 标准语法
ALTER TABLE 表名 DROP INDEX 列名;
  • 建表后单独添加唯一约束
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;

4.非空约束

  • 建表时添加非空约束
-- 标准语法
-- 添加null值,会报错
CREATE TABLE 表名(
	列名 数据类型 NOT NULL,
    列名 数据类型,
    ...
);
  • 删除非空约束
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;
  • 建表后单独添加非空约束
-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;

5.外键约束

-- 建表时添加外键约束
CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名)
  • 删除外键约束
-- 标准语法
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
  • 建表后添加外键约束
-- 标准语法
ALTER TABLE 表名 ADD [CONSTRAINT 外键名] FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名);

6.外键的级联更新和级联删除

-- 添加外键约束,同时添加级联更新  标准语法
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON UPDATE CASCADE;

-- 添加外键约束,同时添加级联删除  标准语法
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON DELETE CASCADE;

-- 添加外键约束,同时添加级联更新和级联删除  标准语法
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON UPDATE CASCADE ON DELETE CASCADE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值