一、将查询结果插入到其他表中
实例:
目前只有一个goods表,想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添加,那么如何实现商品分类信息的操作?
步骤:
- 创建一个商品分类表,把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 可以同时修改多个字段信息
网友评论