文档章节

mysql中复制表数据(select into from和insert into select)

谢思华
 谢思华
发布于 2013/12/06 17:16
字数 705
阅读 25848
收藏 20

一.简介

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应

用程序开发中必不可少。 

但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到

table2中,或者将整个table1复制到table2中,这时候我们就要使用select into  from和 insert into select 表复制语句了。


二.方式1(常用):insert into select

1、语句形式:

Insert into Table2(field1,field2,...) select value1,value2,... from Table1



2、要求:

目标表Table2必须存在;

由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量;


3、例子:

   --1.创建测试表 
    create TABLE Table1 
    ( 
        a varchar(10), 
        b varchar(10), 
        c varchar(10), 
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    create TABLE Table2 
    ( 
        a varchar(10), 
        c varchar(10), 
        d int, 
        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    GO 
    --2.创建测试数据 
    Insert into Table1 values('赵','asds','90') 
    Insert into Table1 values('钱','asds','100') 
    Insert into Table1 values('孙','asds','80') 
    Insert into Table1 values('李','asds',null) 
    GO 
    select * from Table2 
    --3.INSERT INTO SELECT语句复制表数据 
    Insert into Table2(a, c, d) select a,c,5 from Table1 
    GO 
    --4.显示更新后的结果 
    select * from Table2 
    GO 
    --5.删除测试表 
    drop TABLE Table1 
    drop TABLE Table2



也可参考一下sql:

INSERT INTO `um_region`(`region_id`,`parent_id`,`name`,`sort`,`type`)
SELECT `region_id`,`parent_id`,`name`,`sort`,`type` FROM `省$`



三.方式2:select into from

1、语句形式:

SELECT vale1, value2 into Table2 from Table1



2、要求:

目标表Table2不存在;

因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。


3、例子:

   --1.创建测试表 
    create TABLE Table1 
    ( 
        a varchar(10), 
        b varchar(10), 
        c varchar(10), 
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    GO 
    --2.创建测试数据 
    Insert into Table1 values('赵','asds','90') 
    Insert into Table1 values('钱','asds','100') 
    Insert into Table1 values('孙','asds','80') 
    Insert into Table1 values('李','asds',null) 
    GO 
    --3.SELECT INTO FROM语句创建表Table2并复制数据 
    select a,c INTO Table2 from Table1 
    GO 
    --4.显示更新后的结果 
    select * from Table2 
    GO 
    --5.删除测试表 
    drop TABLE Table1 
    drop TABLE Table2


四.是否复制表结构、数据到新表

1、复制表结构以及数据

CREATE TABLE 新表  
SELECT * FROM 旧表



2、只复制表结构

      a、      CREATE TABLE 新表

                 SELECT * FROM 旧表 WHERE 1=2

                 即:让WHERE条件不成立.
      b、:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了)
                CREATE TABLE 新表
                LIKE 旧表


3、复制旧表数据到新表(两表结构一样)

    INSERT INTO 新表
    SELECT * FROM 旧表


4、复制旧表数据到新表(两表结构不一样)

     INSERT INTO 新表(字段1,字段2,…….)
     SELECT 字段1,字段2,…… FROM 旧表


© 著作权归作者所有

共有 人打赏支持
谢思华
粉丝 64
博文 210
码字总数 135083
作品 0
广州
程序员
私信 提问
加载中

评论(3)

Hale79
Hale79
select info 复制表 不支持
红狼之星
红狼之星
thanks!
SimonAt
SimonAt
Good!
mysql常用命令

mysql数据库定义: MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 mysql命令大全 cmd下命令:...

我是宁采臣
2017/02/12
0
0
mysql中用命令行复制表结构的方法

mysql中用命令行复制表结构的方法: 1.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 或CREATE TABLE 新表 LIKE 旧表 2.复制表结构及数据到新表 CREATE TABLE 新表 SE...

durban
2012/10/17
0
0
mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同

首页 问题 全部问题 经济金融 企业管理 法律法规 社会民生 科学教育 健康生活 体育运动 文化艺术 电子数码 电脑网络 娱乐休闲 行政地区 心理分析 医疗卫生 精选 知道专栏 知道日报 知道大数据...

linjin200
今天
0
0
mysql中批量把一个表的数据批量导入另一个表中

MySql中批量将一个表的数据批量导入另一表中 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导...

TommyDo
2012/09/27
0
0
Mysql SELECT 使用笔记

mysql 不支持select into 复制表或数据使用方式; 可使用: 一、表存在的情况: insert into mydb.table1(id,name,...) select id,name,... from mysqldb.tab; table1是数据库mydb中的表,tab...

耳朵_
2014/03/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

操作数据库表

/* DML:数据库操作语言 主要对表中的数据库进行 增删改 ****增:插入一条记录 insert into 表名 (列名1,列名2..) values (值1,值2..) 注意: 1.列名可以在表中选择一列或者几列 2.后面的值 必须...

stars永恒
11分钟前
0
0
你真的了解 volatile 关键字吗?

volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 一、J...

Henrykin
11分钟前
0
0
条码插件TBarCode Office系列教程二(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
11分钟前
0
0
折腾Java设计模式之命令模式

博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the parameterization of clients with different requests, ......

大萌小路
12分钟前
1
0
微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计

基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资...

编程SHA
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部