--原表结构
-- 创建 "test" 数据库
create database jing_dong charset=utf8;-- 使用 "test" 数据库
use test;-- 创建一个商品goods数据表
create table goods(id int unsigned primary key auto_increment not null,name varchar(150) not null,cate_name varchar(40) not null,brand_name varchar(40) not null,price decimal(10,3) not null default 0,is_show bit not null default 1,is_saleoff bit not null default 0
);
--插入测试数据
insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default);
insert into goods values(0,'y400n 14.0英寸笔记本电脑','笔记本','联想','4999',default,default);
insert into goods values(0,'g150th 15.6英寸游戏本','游戏本','雷神','8499',default,default);
insert into goods values(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799',default,default);
insert into goods values(0,'x240 超极本','超级本','联想','4880',default,default);
insert into goods values(0,'u330p 13.3英寸超极本','超级本','联想','4299',default,default);
insert into goods values(0,'svp13226scb 触控超极本','超级本','索尼','7999',default,default);
insert into goods values(0,'ipad mini 7.9英寸平板电脑','平板电脑','苹果','1998',default,default);
insert into goods values(0,'ipad air 9.7英寸平板电脑','平板电脑','苹果','3388',default,default);
insert into goods values(0,'ipad mini 配备 retina 显示屏','平板电脑','苹果','2788',default,default);
insert into goods values(0,'ideacentre c340 20英寸一体电脑 ','台式机','联想','3499',default,default);
insert into goods values(0,'vostro 3800-r1206 台式电脑','台式机','戴尔','2899',default,default);
insert into goods values(0,'imac me086ch/a 21.5英寸一体电脑','台式机','苹果','9188',default,default);
insert into goods values(0,'at7-7414lp 台式电脑 linux )','台式机','宏碁','3699',default,default);
insert into goods values(0,'z220sff f4f06pa工作站','服务器/工作站','惠普','4288',default,default);
insert into goods values(0,'poweredge ii服务器','服务器/工作站','戴尔','5388',default,default);
insert into goods values(0,'mac pro专业级台式电脑','服务器/工作站','苹果','28888',default,default);
insert into goods values(0,'hmz-t3w 头戴显示设备','笔记本配件','索尼','6999',default,default);
insert into goods values(0,'商务双肩背包','笔记本配件','索尼','99',default,default);
insert into goods values(0,'x3250 m4机架式服务器','服务器/工作站','ibm','6888',default,default);
insert into goods values(0,'商务双肩背包','笔记本配件','索尼','99',default,default);-- 修改表结构(重点是思路)-- 创建表格的格式
--create table if not exists 表名 (
--id int unsigned primary key auto_increment, 这个是主键
--name varchar(40) not null); 这个名称--第一步 创建 "商品种类表" -goods_cates
--id跟名称
create table goods_cates(id int unsigned primary key auto_increment,name varchar(50));--第二步 创建 "商品品牌表" -goods_brands
--id跟名称
create table goods_brands( id int unsigned primary key auto_increment ,name varchar(50));--第三步 更新种类信息表
--1. 要把类型查询出来
select cate_name from goods group by cate_name;--2. 批量插入数据
--insert into goods (name) values('123');
insert into goods_cates(name) (select cate_name from goods group by cate_name);--第四 更新品牌信息表
--1. 要把品牌信息查询出来
select brand_name from goods group by brand_name;--2. 批量插入数据
insert into goods_brands (name) (select brand_name from goods group by brand_name);--第五 更新种类信息成种类信息表中的id
--1. 种类信息跟要替换成表进行内联
select * from goods_cates inner join goods on goods_cates.name = goods.cate_name;--2. 通过特殊的update 进行更新
update (goods_cates inner join goods on goods_cates.name = goods.cate_name) set goods.cate_name =  goods_cates.id;--第六 更新品牌信息成品牌信息表的id
--1. 把要更新的表两张表进行内联
select * from goods_brands inner join goods on goods_brands.name = goods.brand_name;--2.通过特殊的update语句进行更新
update (goods_brands inner join goods on goods_brands.name = goods.brand_name) set goods.brand_name = goods_brands.id;--第七步 修改字段(注意类型必须跟外键的主键类型一致)
-- alter table 表名 change 旧字段 新字段 类型
alter table goods change cate_name cate_id int unsigned;
alter table goods change brand_name brand_id int unsigned;

转载于:https://www.cnblogs.com/mrvim/p/8859280.html

mysql修改表结构(拆分)相关推荐

  1. mysql修改表结构权限_mysql 修改表结构操作

    mysql 修改表结构操作 使用 [desc 表名]查看表结构 1.mysql > alter table passwd add id int(3) not null auto_incremen ...

  2. mysql修改表结构例子_mysql修改表结构方法实例详解

    本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...

  3. mysql修改表结构大表_在线修改MySQL大表的表结构

    由于某个临时需求,需要给在线MySQL的某个超过千万的表增加一个字段.此表在设计之时完全按照需求实现,并没有多余的保留字段. 我们知道在MySQL中如果要执行ALTER TABLE操作,MySQL会通 ...

  4. mysql 修改表结构方案_MySQL中修改表结构时需要注意的一些地方

    MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断 ...

  5. mysql报表占容量_MariaDB(MySQL)修改表结构报表空间满

    今天数据库表修改表结构,需要添加一列: ALTER TABLE `xxxx_learn` ADD COLUMN `learn_stage_code` VARCHAR(32) NULL DEFAULT ...

  6. mysql修改表结构sql语句

    修改表结构sql语句 虽然说图形界面可以方便修改,但是要从开发环境中同步到生产环境上就得用到sql语句,同步表结构一个个去点显然不合理 #修改表名 alter table old_name renam ...

  7. mysql修改表结构语句

    mysql alter 用法,修改表,字段等信息 一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table s ...

  8. java mysql修改表结构字段_【开发技术】java+mysql 更改表字段的步骤

    1).首先通过SQL更改MYSQL库中的表结构(下面是一些例子) ALTER TABLE `illegalactivate` ADD `macethaddress` varchar(250)  NOT ...

  9. mysql修改表结构 删除字段_mysql更改表结构:添加、删除、修改字段、调整字段顺序...

    添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` ( ...

最新文章

  1. 前端交易型系统设计原则
  2. java 轻量级 web 框架,Fast-FrameWork
  3. 又一次的Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
  4. 前端学习(1438):vue三种安装方式
  5. 使用ASP.net 2.0 的一些新特性
  6. super.getClass()与this.getClass()
  7. Android ImageView点击效果
  8. python cookbook 2字符串(2)
  9. 计算语言学和自然语言信息处理研究和应用综述(一)
  10. 前端实现html转pdf方法总结
  11. 操作系统笔记 第一章
  12. html页面旋转图标或标签
  13. 人体下肢表面肌电,足底压力和关节角度分析
  14. 2018秋北京松松兄弟线下聚会干货分享
  15. 利用css实现太极图的制作(带旋转动画) (课程实践教学项目)
  16. 2nd homework of OS
  17. 基于uFUN开发板和扩展板的联网校准时钟
  18. 如何快速写作论文初稿?
  19. 一百多篇热门经典计算文章 来自 11 个热门的技术类微信公众
  20. 聊一聊Go中的GMP调度模型

热门文章

  1. idea连接mysql
  2. Mapper动态代理开发所要遵循的四个原则
  3. 当AR落地B端行业应用,它的无限可能在哪?
  4. Python工作记录
  5. Activiti中的各个service的作用
  6. Windows10 ISO下载
  7. JMeter性能测试入门
  8. 张书兰 (帮别人名字作诗)
  9. SQL Server2005 使用FOR XML选项进行字符串的串联聚合
  10. android 内核态