MySQL —— 外键

1、外键是什么

定义: 一张表中的非主键字段指向了另一张表中的主键,称之为外键
一张表可以有多个外键,但是表之间不能跨引擎。只有 InnoDB引擎才支持外键。

2、外键的作用

外键的作用:保持数据的一致性、完整性。具体体现在以下两个方面:
2.1 阻止执行
从表插入新行,其外键值不是主表的主键值便阻止插入
从表修改外键值,新值不是主表的主键值便阻止修改
主表删除行,其主键值在从表里存在便阻止删除(即必须先删除从表的相关行,才能删除主表行)
主表修改主键值,旧值在从表里存在便阻止修改(即必须先删除从表的相关行)

2.2 级联执行
主表删除行,连带从表的相关行一起删除
主表修改主键值,连带从表相关行的外键值一起修改

3、如何创建外键

首先,先创建主表Vendors商品供应商表,主键字段为 vend_id 供应商id

-- 供应商列表
CREATE TABLE Vendors (
	-- 供应商ID:主键列,自增长
	vend_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '供应商ID',
	-- 供应商名:可变字符,非空
	vend_name VARCHAR (30) NOT NULL COMMENT '供应商名',
	-- 供应商地址
	vend_address VARCHAR (100) NOT NULL COMMENT '地址',
	-- 供应商城市
	vend_city VARCHAR (20) NOT NULL COMMENT '城市',
	-- 供应商州
	vend_state VARCHAR (20) NOT NULL COMMENT '州',
	-- 供应商邮编
	vend_zip VARCHAR (20) NOT NULL COMMENT '邮编',
	-- 供应商国家
	vend_country VARCHAR (20) NOT NULL COMMENT '国家'
);

然后,创建从表 Products产品表,设置从表的 vend_id 字段 指向 主表的 vend_id 主键字段

-- 产品目录表
CREATE TABLE Products (
	-- 产品ID:主键列,自增长
	prod_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
	-- 供应商ID:外键
	vend_id INT NOT NULL COMMENT '供应商ID',
	-- 产品名
	prod_name VARCHAR (30) NOT NULL COMMENT '产品名',
	-- 产品价格
	prod_price DOUBLE NOT NULL COMMENT '产品价格',
	-- 产品描述
	prod_desc VARCHAR (100) COMMENT '产品描述',
	FOREIGN KEY (vend_id) REFERENCES Vendors (vend_id)
);

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值