文档章节

多表更新 连接

T
 Thinkle13
发布于 2017/08/30 01:02
字数 275
阅读 10
收藏 0

1.创建分类表,并将商品表中的所有分类写入分类表

①首先新建一张分类表

CREATE TABLE tdb_goods_cates(
cate_id SMALLINT UNSIGNED PRIMAREY KEY AUTO_INCREMENT,
cate_name VARCHAR(40) NOT NULL);

②然后将tdb_goods表中的goods_cate的数据写入tdb_goods_cates表中

INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

③为了节省商品表中数据所占的字节空间,下面将商品表中的分类由文字改为由分类表中的cate_id代替

UPDATE tdb_goods INNER JOIN tdb_goods_cate ON goods_cate = cate_name SET goods_cate = cate_id;

 

以上三步可以简化为

CREATE TABLE IF NOT EXISTS tdb_goods_cate(
cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
cate_name VARCHAR(40) NOT NULL)
SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name SET goods_cate = cate_id;

 

※如果分类表和商品表要连接的两个字段名相同,在更新时可以这样写

UPDATE tdb_goods AS a INNER JOIN tdb_goods_cates AS b ON a.goods_cate_name = b.goods_cate_name SET a.goods_cate_name = cate_id;

 

2.更新后,再将商品表结构的类型进行修改,否则数据显示的数字,但占用的还是字符的字节,没有达到节省空间的效果。

ALTER tdb_goods 
CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL;

 

© 著作权归作者所有

共有 人打赏支持
T
粉丝 0
博文 9
码字总数 1284
作品 0
成都
MySQL学习笔记-子查询和连接

MySQL学习笔记-子查询和连接 使客户端进入gbk编码方式显示: mysql> SET NAMES gbk; 1.子查询 子查询的定义: 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。 例如: SELECT * FRO...

谢育政
06/26
0
0
数据库篇-mysql详解之多表关系( 二 )

一 : 外键 现在有两个表分类表 与商品表 其中在表中的字段存放的是 表中(主键)的信息列称为. 此时分类称为,'cid'称为主键,称为从表,称为外键,通过主表的主键和从表的外键来描述主外键关系,呈...

TianTianBaby223
09/02
0
0
CoreData 与 SQLite 比较

CoreData.framework : iOS中提供了对原始SQLite数据库API访问的封装,通过这个framework来管理数据缓存和持久数据要比使用SQL语句操作SQLite数据库简单和方便许多。 机制:通过framework来存...

木木情深
2013/12/19
0
0
MySQL增删改插 及表的复制及改名

MySQL增、删、改、插 全表查询表记录 格式1:select 字段1,...字段N from 库名.表名; 格式2:select 字段1,...字段N from 库名.表名 where 条件表达式; 注意事项: 1.使用"*"可匹配所有字段...

夜流璃雨
06/26
0
0
dml--数据操控语句

#插入语句 #INSERT INTO tablename (field1, filed2) VALUES(value1, value2); INSERT INTO EMP(, , ) VALUES('DY', '2015-12-25', '2000'); #多条插入 INSERT INTO EMP(, , ) VALUES('dd',......

xbuding
2016/04/26
42
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
40
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
33
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
43
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
33
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
43
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部