一、什么是实体?(了解)
现实世界中的任何一个事物都是一个实体。在使用mysql保存现实中的事物时信息时,那么一个事物(一个实体)的信息就保存在一个表中。(班级信息放入班级表......)
现实中的实体与实体之间有关系,如学生与班级,在数据库中,学生表与班级表有关系,即mysql数据库中,
保存实体的表与表之间也会反应出现实体与实体之间的关系。
关系可以分为三类:
一对一:
185.png

一对多:
186.png

多对多:
187.png
二、mysql高级表的高级操作
1、复制表结构
语法:create table 表B like 表A
说明:此复制只是复制表的结构,不包含表的数据,如图:

188.png

2、备份sql执行结果
非备份准备:创建一个货物表如下:
189.png

190.png

191.png

192.png

备份查出的结果,因为数据库不能以文档形式保存,所以
语法:create table 表名 select 语句;
全部备份:
193.png

194.png
部分字段备份:
195.png

sql备份只备份的数据,结构却没有备份

196.png

3、限制更新

update 表名 set 字段=值 【where】【limit子句】
说明:用于将where子句匹配到的记录,仅更改limit子句限制的‘条数’。
比如将id大于5的库存(inventory)5条记录 加30:

197.png

198.png
4、限制删除
语法:
delete from 表名 【where子句】【limit子句】
说明:用于删除where子句匹配到的,仅更改limit限制的条数
199.png

5、批量插入

语法:
insert into 表A【字段列表】 select 【字段列表】from 表B
①、照搬goods表做一份goods1只有结构没有数据
200.png

②、批量插入
201.png

6、蠕虫复制
蠕虫复制是批量插入的一种特殊情况,在使用批量插入时,如果插入的表与数据查询的表是同一个表,那么这种情况,术语叫蠕虫复制。
202.png

203.png

204.png
7、主键冲突
重置goods表
插入已经存在主键id 1时,如图
205.png

解决方案:
①、冲突更新
语法:insert into 表名【字段列表】values(值列表)on duplicate key update 字段=值,字段=值...;
注意:此方法也适用于唯一键冲突
206.png
②、冲突替换
语法:
replace into 表名【字段列表】values(值列表)
说明:
如果主键冲突,会将所有的字段替换掉
207.png

8、清空表
语法:delete from 表名;
说明:只会将数据清除,但不会清除索引
将goods表中数据delete删除后,再次插入会发现索引 前面编号从删除前开始计算的
(如图所示1是新插入的1,并不是出bug了)
208.png

209.png

彻底清空:truncate 表名;
注意:此处为清空表内信息,而不是删除表
210.png

211.png