@[TOL][mysql约束常用语法命令]
约束的分类
约束 | 说明 |
---|---|
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;