服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - SELECT INTO 和 INSERT INTO SELECT 两种表复制语句简单介绍

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句简单介绍

2019-12-09 15:38MYSQL教程网 Mysql

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 
1.INSERT INTO SELECT语句 
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下: 

复制代码代码如下:


INSERT INTO SELECT语句复制表数据 
--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 


2.SELECT INTO FROM语句 
语句形式为:SELECT vale1, value2 into Table2 from Table1 
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下: 
SELECT INTO FROM创建表并复制表数据 

复制代码代码如下:


--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 

延伸 · 阅读

精彩推荐
  • Mysql让MySQL数据库跑的更快 为数据减肥

    让MySQL数据库跑的更快 为数据减肥

    在MySQL数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用、也是最有效的手段之一。 ...

    mysql教程网4962019-11-15
  • Mysqlmysql命令行下用户管理方法分享

    mysql命令行下用户管理方法分享

    如果有mysql管理工具phpmyadmin的话,我们可以通过图形画界面来对用户进行管理,但是如果没有phpmyadmin这样的管理工具怎么办呢 ...

    海底苍鹰4512019-12-04
  • Mysqlmysql对binlog的处理说明

    mysql对binlog的处理说明

    Mysql和其它开源数据库相比,具有更好的扩展性。其主要原因是它提供了存储引擎的开放接口。喜欢自己折腾数据库的程序员可以从这个接口起步,打造有...

    MYSQL教程网4512019-11-20
  • Mysql数据库性能测试之sysbench工具的安装与用法详解

    数据库性能测试之sysbench工具的安装与用法详解

    sysbench是一个很不错的数据库性能测试工具,这篇文章主要给大家介绍了关于数据库性能测试之sysbench工具的安装与用法的相关资料,文中通过示例代码介绍...

    骏马金龙2572019-07-02
  • Mysql使用JDBC连接Mysql数据库会出现的问题总结

    使用JDBC连接Mysql数据库会出现的问题总结

    这篇文章主要给大家介绍了关于使用JDBC连接Mysql数据库会出现的问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    Dmego4072019-06-21
  • MysqlMySQL查询中LIMIT的大offset导致性能低下浅析

    MySQL查询中LIMIT的大offset导致性能低下浅析

    这篇文章主要给大家介绍了关于MySQL查询中LIMIT的大offset导致性能低下的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    craneyuan4732019-06-14
  • MysqlMySQL数据库主机127.0.0.1与localhost区别

    MySQL数据库主机127.0.0.1与localhost区别

    这篇文章主要介绍了MySQL主机127.0.0.1与localhost区别总结,需要的朋友可以参考下...

    服务器之家3552019-07-11
  • MysqlMySQL InnoDB和MyISAM数据引擎的差别分析

    MySQL InnoDB和MyISAM数据引擎的差别分析

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持 ...

    mysql教程网1302019-11-18