MySQL下使用SQL命令进行表结构与数据复制实践

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL下使用SQL命令进行表结构与数据复制实践

【1】表结构复制

第一种方式

create table 表名 like [数据库.]表名;
-- 如果是同一个数据库下的表的复制,不需要添加[数据库.];
-- 不会复制数据;

示例如下:

-- 原表创建语句:
CREATE TABLE `tb_lesson` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(60) DEFAULT NULL,
  `joinTime` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
-- 删除原表:
drop table tb_lesson;
--并从备份数据库复制
create table tb_lesson like db_exam2.tb_lesson;
-- 查看复制的新表语句;
CREATE TABLE `tb_lesson` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(60) DEFAULT NULL,
  `JoinTime` datetime DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 字段属性未变

第二种方式

create table new_table
as
select * from [数据库名.]old_table;
-- 第二种方式在mysql下可能会丢失列属性,如主键,自增等。

示例如下:

-- 第二种方式复制的新表如下:
CREATE TABLE `tb_lesson` (
  `ID` int(11) NOT NULL DEFAULT '0',
  `Name` varchar(60) DEFAULT NULL,
  `JoinTime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 改变了字段属性等。
-- 同时复制了数据;
-- 如果侧重表结构不建议使用这种方式。

【2】表数据复制

又被称为蠕虫复制,语法格式如下:

insert into Table2(field1,field2,...) select value1,value2,... from Table1;
// 如果不指定列,则如下(一定保证两个表列一致):
insert into new_table select * from [数据库.]old_table

指定列字段实例:

insert  into tb_sys_news (category_name,category_id,user_name,user_id,content,field9,create_time)
select 'XX特色',1,'XXXXX',2,content,website,publish_time  from sheetj1 

需要注意的是,下面方式不适用于MySQL:

SELECT vale1, value2 into Table2 from Table1

该方式常常用于MySQL触发器、存储过程或函数中为变量赋值。

【3】不同数据库之间表复制

两个数据库之间表复制过程如下:

复制db_exam2数据库的表tb_lesson到当前数据库的表tb_lesson(表不出存在时需要创建)。

-- 删除已经存在的表;
drop table if EXISTS tb_lesson;
--复制并创建新表
create table tb_lesson like db_exam2.tb_lesson;
-- 复制数据
insert into tb_lesson select * from db_exam2.tb_lesson;

这里是从另外一个数据库(两个数据库在同一个主机)复制表和数据到当前数据库,省略了当前数据库名字。

也可以不省略数据库名字如下:

从data_analysis复制表和数据到data_analysis_zh。此处不管当前连接对象是哪个数据库,都可以正确执行。

drop table if EXISTS data_analysis_zh.store_card_2;
create table data_analysis_zh.store_card_2 like data_analysis.pos_sale;
INSERT into data_analysis_zh.store_card_2 
select * from data_analysis.pos_sale where data_analysis.pos_sale.number_store_card >0;
select * from data_analysis_zh.store_card_2 ;

效果等同如下(打开data_analysis连接):

drop table if EXISTS data_analysis_zh.store_card_2;
create table data_analysis_zh.store_card_2 like pos_sale;
INSERT into data_analysis_zh.store_card_2 
select * from pos_sale where number_store_card >0;
select * from data_analysis_zh.store_card_2 ;

效果等同如下(打开data_analysis_zh连接):

drop table if EXISTS store_card_2;
create table store_card_2 like data_analysis.pos_sale;
INSERT into store_card_2 
select * from data_analysis.pos_sale where [data_analysis.pos_sale.]number_store_card >0;
select * from store_card_2 ;


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
22天前
|
SQL 缓存 关系型数据库
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
39 0
|
8天前
|
SQL 缓存 关系型数据库
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
24 0
|
22天前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
128 0
|
22天前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
35 0
|
2天前
|
SQL 关系型数据库 MySQL
|
12天前
|
SQL 存储 关系型数据库
MySQL索引原理以及SQL优化
MySQL索引原理以及SQL优化
49 0
|
22天前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【认识mysql命令】
以上是一些常见的MySQL命令,可用于管理数据库和数据表,进行数据的查询、更新、删除等操作。
18 7
|
22天前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表6、查询优化——1、EXPLAIN命令的使用——2、索引优化
MySQL技能完整学习列表6、查询优化——1、EXPLAIN命令的使用——2、索引优化
12 0
|
22天前
|
SQL 安全 关系型数据库
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
24 0
|
9天前
|
关系型数据库 MySQL 数据库
MYSQL解压版安装笔记
MYSQL解压版安装笔记
13 0