数据库就是储存和管理数据的仓库,对数据进行增删改查操作,其本质是一个软件。MySQL就是一种开源的关系型数库,也是最受欢迎的数据库之一,今天对MySQL数据的基础知识做了整理,方便自己查看,也欢迎正在学习MySQL数据库的同学参考,谢谢。
说明:
1.MySQL数据库相关数据表的增删改查、数据库的增删改查以及 primary key 主键约束 、联合主键、自动递增 auto_increment、unique 唯一约束、非空约束 not null等基本知识请参考:
2.MySQL数据库安装配置连接:详细教程 MySQL 数据库 下载 安装 连接 环境配置 全面-CSDN博客
目录
1.外键约束
1.1外键的默认约束
如果一张表中的一个字段指向了另一张表中的主键,就将该字段称为外键,外键的数据类型必须和指向的主键一致,定义外键的表称为从表,被外键引用的表称为主表。
-- 外键约束 -- 如果一张表中的一个字段指向了另一张表中的主键,就将该字段称为外键 -- 外键的数据类型必须和指向的主键一致 -- 定义外键的表称为从表,被外键引用的表称为主表 -- 主表 create table if not exists users( id int unsigned primary key auto_increment, username varchar(20) not null ); desc users; --从表 create table if not exists dynamic_1( id int unsigned primary key auto_increment, content varchar(220) not null, user_id int unsigned, foreign key(user_id) references users(id) ); desc dynamic_1;
两张表主表users和dynamic_1从表之间的关系
默认情况下主表users中删除一条已经和从表关联的数据是不被允许的。
主表想修改已经关联从表的数据id 也是不被允许的。
1.2 外键操作 action
如果想要删除或者修改数据怎么处理?一般情况下都是主表删除从表置空,主表更新从表级联操作。
通过数据表右键设计表>外键 的删除和更新时的数据内容可以看到当前外键的约束方式。
1.2.1 restrict 严格模式
- 主表中不存在对应的数据,从表不允许添加
- 主表引用着数据(即和从表有关联数据),主表对应的数据不允许删除和修改
1.2.2 set null 置空操作
修改或删除主表 id 时,所有跟它关联的从表字段数据都会被置为null
1.2.3 cascade 级联操作
修改或删除主表 id 时,所有跟它关联的从表字段数据都会做同样的操作
现在我们把外键约束设置成级联操作了,下面是主表和从表对应的数据
当我们修改主表的数据时,从表跟着一起变化了。
当我们删除主表的数据时,从表相应的字段数据也变成null了。
关于外键约束的内容完了。
MySQL数据的增删改查 where 条件查询基本知识请参考:MySQL数据的增删改查 where 条件查询 基础知识 【3】推荐-CSDN博客