美文网首页
python学习笔记-数据库08_实践

python学习笔记-数据库08_实践

作者: MR_詹 | 来源:发表于2020-11-15 09:03 被阅读0次

一、将查询结果插入到其他表中

实例:
目前只有一个goods表,想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添加,那么如何实现商品分类信息的操作?
步骤:

  1. 创建一个商品分类表,把goods表中的商品分类信息添加到该表中。
    2.将goods表中的分类名称更改成商品分类表中对应的分类id。

创建商品分类表

create table good_cates{
id int unsigned not null primary key auto_increment,
name varchar(50) not null
};

把goods表中的商品分类添加到商品分类表

// 查询goods表中商品的分类信息
select cate_name from goods group by cate_name;

// 将查询结果插入到good_cates表中
insert into good_cate(name) select cate_name from goods group by cate_name;

// 添加移动设备分类信息
insert into goods_cates(name) values('移动设备');

备注: insert into ... select ...表示:把查询结果插入到指定表中,也就是表复制

将goods表中的分类名称更改成商品分类表中对应的分类id

update goods g inner join goods_cates gs on g.cate_name = gs.name set g.cate = gs.id;

这句sql语句要分两部分理解:
第一:goods g inner join goods_cates gs on g.cate_name = gs.name 这内查询语句,把两个表拼接在一起,并把结果看做一个
第二: update ... set 列1 = 列2 修改表格 列1字段的值,都是用列2 的值赋值

二、创建表并给某个字段添加数据

// 查询品牌信息
select brand_name from goods group by brand_name;

/// 创建商品分类表,注意:需要对brand_name 用as起别名,否则name字段没有值
create table good_brands (
id int unsigned not null primary key auto_increment,
name varchar(40) not null) select brand_name as name from goods group by brand_name;

备注: create table ... select 列名.. 表示创建表并插入数据

三、修改goods表结构

需要将cate_name 和 brand_name 字段分别改成cate_id 和 brand_id字段,类型都改成int类型

// 查看表结构
desc goods
// 通过alter table 语句修改表结构
alter table goods change cate_name cate_id int not null,change brand_name brand_id int not null;

备注:alert table 可以同时修改多个字段信息

相关文章

网友评论

      本文标题:python学习笔记-数据库08_实践

      本文链接:https://www.haomeiwen.com/subject/pnjwbktx.html