文档章节

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

谢思华
 谢思华
发布于 2013/12/06 17:16
字数 705
阅读 5.9W
收藏 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 旧表


© 著作权归作者所有

谢思华
粉丝 78
博文 227
码字总数 152858
作品 0
广州
程序员
私信 提问
加载中

评论(3)

Hale79
Hale79
select info 复制表 不支持
红狼之星
红狼之星
thanks!
SimonAt
SimonAt
Good!
SQL中使用insert into select和 select into from

使用场合 一个表中数据使用另外一个表中获取的或者一个表的数据增加一条。 insert into select INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已...

豫华商
2019/11/28
27
0
mysql常用命令

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

我是宁采臣
2017/02/12
0
0
mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同

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

linjin200
2019/01/23
1K
0
mysql中用命令行复制表结构的方法

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

durban
2012/10/17
92
0
mysql中批量把一个表的数据批量导入另一个表中

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

TommyDo
2012/09/27
333
0

没有更多内容

加载失败,请刷新页面

加载更多

3 汇编的函数调用

3 汇编的函数调用 3.1 无参数和返回值的函数调用 void func_void(){ printf("func, no param, no return value\n");}// func_void();asm ("call func_void"); // call指令调......

风从东方来
今天
59
0
AQS讲的很好,很透彻的一篇

JUC AQS ReentrantLock源码分析(一) https://blog.csdn.net/java_lyvee/article/details/98966684

南桥北木
昨天
49
0
0219 springmvc-拦截器和响应增强

拦截器 拦截器分同步拦截器和异步拦截器; HandlerInterceptor 方法和执行时机 可以看DispathcerServlet的原来确定它的三个方法的执行时机; AsynHandlerInterceptor 看注释,主要用来清理在...

李福春carter
昨天
44
0
返沪第一天,学习不能断,工作还要继续

返沪第一天 今天是2020年02月19日,是我返沪第一天,早上的体温是36.5,晚上的体温为36.6. 呵呵 -- 正常 说起返沪,海囧有木有。 回沪需要多转(转车三次) 从家开车到高铁站(这可是我第一次...

lihua20103181
昨天
82
0
Golang并发编程之互斥锁、读写锁详解

[TOC] Golang并发编程之互斥锁、读写锁详解 谢谢慕课网cap1537老师,写的不错. 我们对Go语言所提供的与锁有关的API进行说明。这包括了互斥锁和读写锁。我们在第6章描述过互斥锁,但却没有提到...

我爱吃炒鸡
昨天
48
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部