mysql 外键说明_MySQL学习之外键的图文详细说明

软件安装:装机软件必备包

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。1、比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键。

9399135284c9ab4e0760df4a0065f534.png

此时分类表category称为主表,cid称为主键;商品表products称为从表,category_id称为外键。

外键特点:1)从表外键的值是对主表主键的引用

2)从表外键类型必须与主表主键一致。

使用外键的目的:保证数据的完整性

2、首先在命令提示符内创建一个数据库web09,并创建两张表category和product,语句如下:

2bca97f6b7bd01c768ae79519eb6a9ff.png

分别插入多条数据

eg.insert into category(cid,cname) values('c001','家电');

insert into product(pid,pname,price,category_id) values('p001','联想','5000','c001');

显示如下:

fd9e7f2e76696191254629b6053e58f9.png

7f698ea08c1e798b48282d4b38ab263d.png

3、声明外键约束

语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

[外键名称]用于删除外键约束的,一般建议"_fk"结尾

0275506c211ce9bd55b368c6edc4fda3.png

约束声明后,如果我想删除category表中cid=c003的数据,删除不了

3e37aed5dc834e3b4aa8049b6c9bea7f.png

4、解除约束

语法:alter table 从表 drop foreign key 外键名称

942e6df9c5f05e9b4598567017d15061.png

继续删除category表中cid=c003的数据,可以删除

c80dd1feb7b5be5949cdc76f727dbac9.png

注意:从表外键不能添加主表中不存在的记录

主表不能删除从表中已经引用的记录。

5、一对多建表原则:

4c9b075b250c1693d91a417f607f43a2.png

6、多对多建表原则:

492a2938d6fc6f9b22b5e8fdf49992cc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值