mysql修改表结构(拆分)
--原表结构 -- 创建 "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修改表结构(拆分)相关推荐
- mysql修改表结构权限_mysql 修改表结构操作
mysql 修改表结构操作 使用 [desc 表名]查看表结构 1.mysql > alter table passwd add id int(3) not null auto_incremen ...
- mysql修改表结构例子_mysql修改表结构方法实例详解
本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...
- mysql修改表结构大表_在线修改MySQL大表的表结构
由于某个临时需求,需要给在线MySQL的某个超过千万的表增加一个字段.此表在设计之时完全按照需求实现,并没有多余的保留字段. 我们知道在MySQL中如果要执行ALTER TABLE操作,MySQL会通 ...
- mysql 修改表结构方案_MySQL中修改表结构时需要注意的一些地方
MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断 ...
- mysql报表占容量_MariaDB(MySQL)修改表结构报表空间满
今天数据库表修改表结构,需要添加一列: ALTER TABLE `xxxx_learn` ADD COLUMN `learn_stage_code` VARCHAR(32) NULL DEFAULT ...
- mysql修改表结构sql语句
修改表结构sql语句 虽然说图形界面可以方便修改,但是要从开发环境中同步到生产环境上就得用到sql语句,同步表结构一个个去点显然不合理 #修改表名 alter table old_name renam ...
- mysql修改表结构语句
mysql alter 用法,修改表,字段等信息 一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table s ...
- java mysql修改表结构字段_【开发技术】java+mysql 更改表字段的步骤
1).首先通过SQL更改MYSQL库中的表结构(下面是一些例子) ALTER TABLE `illegalactivate` ADD `macethaddress` varchar(250) NOT ...
- mysql修改表结构 删除字段_mysql更改表结构:添加、删除、修改字段、调整字段顺序...
添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` ( ...
最新文章
- 前端交易型系统设计原则
- java 轻量级 web 框架,Fast-FrameWork
- 又一次的Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
- 前端学习(1438):vue三种安装方式
- 使用ASP.net 2.0 的一些新特性
- super.getClass()与this.getClass()
- Android ImageView点击效果
- python cookbook 2字符串(2)
- 计算语言学和自然语言信息处理研究和应用综述(一)
- 前端实现html转pdf方法总结
- 操作系统笔记 第一章
- html页面旋转图标或标签
- 人体下肢表面肌电,足底压力和关节角度分析
- 2018秋北京松松兄弟线下聚会干货分享
- 利用css实现太极图的制作(带旋转动画) (课程实践教学项目)
- 2nd homework of OS
- 基于uFUN开发板和扩展板的联网校准时钟
- 如何快速写作论文初稿?
- 一百多篇热门经典计算文章 来自 11 个热门的技术类微信公众
- 聊一聊Go中的GMP调度模型