mysql select into table

http://my.oschina.net/xsh1208/blog/182164

一.简介

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、语句形式:

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



2、要求:

目标表Table2必须存在;

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


3、例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    --1.创建测试表 
     create  TABLE  Table1 
    
         varchar (10), 
         varchar (10), 
         varchar (10), 
         CONSTRAINT  [PK_Table1]  PRIMARY  KEY  CLUSTERED 
        
             ASC 
        
     ON  [ PRIMARY
     create  TABLE  Table2 
    
         varchar (10), 
         varchar (10), 
         int
         CONSTRAINT  [PK_Table2]  PRIMARY  KEY  CLUSTERED 
        
             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:

?
1
2
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、语句形式:

?
1
SELECT  vale1, value2  into  Table2  from  Table1



2、要求:

目标表Table2不存在;

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


3、例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    --1.创建测试表 
     create  TABLE  Table1 
    
         varchar (10), 
         varchar (10), 
         varchar (10), 
         CONSTRAINT  [PK_Table1]  PRIMARY  KEY  CLUSTERED 
        
             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、复制表结构以及数据
?
1
2
CREATE  TABLE  新表  
SELECT  FROM  旧表



2、只复制表结构

      a、      CREATE TABLE 新表

                 SELECT * FROM 旧表 WHERE 1=2

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


3、复制旧表数据到新表(两表结构一样)
?
1
2
     INSERT  INTO  新表
     SELECT  FROM  旧表


4、复制旧表数据到新表(两表结构不一样)
?
1
2
      INSERT  INTO  新表(字段1,字段2,…….)
      SELECT  字段1,字段2,……  FROM  旧表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值