当前位置:首页 > 行业动态 > 正文

MySQL中主键外键约束详解

在MySQL中,主键和外键是用于维护数据完整性和关联性的重要约束,下面将详细介绍主键和外键的概念、特点以及使用方法。

主键约束

1、概念:主键是表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行,一个表只能包含一个主键,但可以有多个候选键。

2、特点:

主键的值不能为空(NOT NULL)。

主键的值不能重复。

主键的值可以是数值类型、字符串类型或日期时间类型等。

主键可以自动递增(AUTO_INCREMENT)。

3、创建主键约束:

“`sql

CREATE TABLE 表名 (

列名1 数据类型 PRIMARY KEY,

列名2 数据类型,

);

“`

4、修改表结构添加主键约束:

“`sql

ALTER TABLE 表名

ADD PRIMARY KEY (列名);

“`

5、删除主键约束:

“`sql

ALTER TABLE 表名

DROP PRIMARY KEY;

“`

外键约束

1、概念:外键是一个表中的列,它引用了另一个表的主键,外键用于维护两个表之间的关联关系,确保数据的一致性和完整性。

2、特点:

外键的值必须参照另一个表的主键值,或者为空(NULL)。

如果参照的主键值不存在,插入操作会被拒绝;如果参照的主键值被删除,相关联的外键值也会被设置为空。

外键可以有级联操作(CASCADE)、置空操作(SET NULL)或拒绝操作(RESTRICT)。

3、创建外键约束:

“`sql

CREATE TABLE 表名1 (

列名1 数据类型,

…,

FOREIGN KEY (列名) REFERENCES 表名2 (主键列名) ON DELETE CASCADE ON UPDATE CASCADE

);

“`

4、修改表结构添加外键约束:

“`sql

ALTER TABLE 表名1

ADD FOREIGN KEY (列名) REFERENCES 表名2 (主键列名) ON DELETE CASCADE ON UPDATE CASCADE;

“`

5、删除外键约束:

“`sql

ALTER TABLE 表名1

DROP FOREIGN KEY (列名);

“`

0