四十六、mysql数据库5:(重点)商城数据库优化(三范式,细分表)、数据备份与还原
一、创建商品分类表:(分开插入数据的)
1、创建 goods_cates 表
#创建表if 用法: 如果不存在创建,存在报错
create table if not exists goods_cates(cate_id int unsigned primary key auto_increment, cate_name varchar(40));
2、将刚刚查询的数据插入到这个表中(部分插入):下面的代码,insert插入数据,把values去掉了
3、更新数据、并关联表
通过goods_cates 数据表来更新goods数据表
二、创建品牌数据表并且插入数据
1、创建goods_brands表并且同时分组写入数据,一步到位。(可这样创建表后边加上分组写)
2、更新数据并关联表:
通过goods_brands 数据表来更新goods数据表
三、修改商品表的结构
1、修改表的名称、属性
本例子中,要想添加外键,必须修改成int属性,要保持属性一致
2、注意:添加外键的那个字段的数据类型必须要与相关联的那个表的字段的数据类型一致。
四、多张表的连接查询
内连接:
左连接:
右连接:
五、外键约束的创建和删除(可建立关系,不能随便添加数据)
现在3张表的状况:
注意,如果添加不上外键:
1、检查你的表引擎是不是都是INNodb类型的,只有这种类型才可以创建外键。
2、相关联的表都要改引擎Innodb
①先查看一下表的结构:show create table 表名 \G;
② 修改:alter table 表名 engine=Innodb;
1、添加外键
show create table goods; 查看
2、注意:添加外键的那个字段的数据类型必须要与相关联的那个表的字段的数据类型一致。
3、删除刚添加的外键约束:需要指定具体删除的外键的名字:
4、删除两个key:
六、数据备份与还原
1、备份一个数据库
下面是备份一个叫做python1807A的数据库:
注意:必须退出,再写命令, 在虚拟机上需要加 -h IP 地址, 在windows不需要加-h、IP地址
>后面保存路径,直接定义即可,会自己创建文件
2、备份多个数据库
例:备份dailyfresh数据库、ihome_python04数据库、python1807A数据库
加上--databases这个选项,然后跟多个数据库的名称。
3、备份所有数据库
使用--all-databases选项就可备份所有数据库了。
4、数据还原
先确保有数据库,没有先创建数据库,再还原数据表中的数据