(3-1)MySQL 外键约束

本文深入讲解了外键约束的功能和创建要求,包括数据一致性的维护、表间关系的建立及索引的重要性。通过实例演示了如何在MySQL中创建外键约束。

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

目录

1 约束简介

2 FOREIGN KEY

2.1 FOREIGN KEY 功能

2.2 创建外键约束的要求

3 实例

3.1创建两个数据表(父表和子表)

3.2查看索引

4参考链接


1 约束简介

(1)约束保证数据的完整性和一致性。

(2)约束分为表级约束和列级约束。

(3)约束按功能划分包括:

    ①NOT NULL(非空约束)

    ②PRIMARY KEY(主键约束)

    ③UNIQUE KEY(唯一约束)

    ④DEFAULT(默认约束)

    ⑤FOREIGN KEY(外键约束)

2 FOREIGN KEY

2.1 FOREIGN KEY 功能

    保持数据一致性,完整性,实现数据表的一对一或者一对多关系(这就是很多数据库被称为关系型数据库的原因)。

2.2 创建外键约束的要求

(1)父表(子表所参照的表)和子表(具有外键列的表)必须具有相同的存储引擎,而且禁止使用临时表。

(2)数据表的存储引擎只能是InnoDB(配置默认是InnoDB,不需要改)。

         查看配置文件:MySQL安装目录下的my.ini文件:default-storage-engine=INNODB;

(3)外键列和参照列必须具有相同的数据类型。其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同。

(4)外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

3 实例

3.1创建两个数据表(父表和子表)

    ①首先进入一个数据库:

 

 USE test;

    ②创建父表

 

CREATE TABLE provinces(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL,
);

   ③创建子表

 CREATE TABLE users(
 id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
 pid SMALLINT UNSIGNED,
 FOREIGN KEY (pid) REFERENCES provinces(id)//关键句:关联到provinces的id字段
 );

3.2查看索引

查看父表是否有索引:SHOW INDEXES FROM provinces\G

查看子表是否存在索引: SHOW INDEXES FROM users\G

4参考链接

整理自:慕课网MySQL 外键约束的要求解析

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值