MySQL进阶-02-授课笔记
一、约束
1. 外键约束
-
为什么要有外键约束
-
例如:一个user表,一个orderlist
-
如果现在想要直接删除id为1的张三,但是orderlist里还有用户id为1的订单数据,这样合理么?
-
给uid添加外键约束之后,uid就是外键列
- 如果与另外的一张表的主键有关联关系,那么这一列就是外键列
-
建表语句
-- 创建db2数据库 CREATE DATABASE db2; -- 使用db2数据库 USE db2; -- 创建user用户表 CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, -- id NAME VARCHAR(20) NOT NULL -- 姓名 ); -- 添加用户数据 INSERT INTO USER VALUES (NULL,'张三'),(NULL,'李四'),(NULL,'王五'); -- 创建orderlist订单表 CREATE TABLE orderlist( id INT PRIMARY KEY AUTO_INCREMENT, -- id number VARCHAR(20) NOT NULL, -- 订单编号 uid INT -- 订单所属用户 ); -- 添加订单数据 INSERT INTO orderlist VALUES (NULL,'hm001',1),(NULL,'hm002',1), (NULL,'hm003',2),(NULL,'hm004',2), (NULL,'hm005',3),(NULL,'hm006',3); -- 添加一个订单,但是没有所属用户。这合理吗? INSERT INTO orderlist VALUES (NULL,'hm007',8); -- 删除王五这个用户,但是订单表中王五还有很多个订单呢。这合理吗? DELETE FROM USER WHERE NAME='王五'; -- 所以我们需要添加外键约束,让两张表产生关系
-
-
外键约束概念
- 让表和表之间产生关系,从而保证数据的准确性&#