【SQL 代码】SQL复制数据表及表结构
select * into 目标表名 from 源表名
insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名
以上两句都是将'源表'的数据插入到'目标表',但两句又有区别的:
第一句(select into from)要求目标表不存在,因为在插入时会自动创建。
第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表的字段外,还可以插入常量,如例中的:5。
示例
目前有数据如下:

现在要将id为2的数据复制一条到表中,可用如下语句:
insert into test select * from test where id=2;
结果如图:

现在要将id为2的数据都复制到表中,同时把其 name 的值改为 'f',可用如下语句:
insert into test(id,name) select id,'f' from test where id=2
结果如图:

对此,我们就可以扩充下,目前有数据如下:

1:复制表结构及数据到新表
SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名
我们把表 test 的结构和数据复制到新表 test1:
SELECT * INTO test1 FROM test
结果如下:

2.备份表的一部分列(不写*而写出列的列表)
SELECT 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名
我们把表 test1 列 id,name 的数据复制到 test2:
SELECT id,name INTO test2 FROM test1
结果如下:

3.备份表的一部分行(加 WHERE 条件)
SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件
我们把 id 为1的数据从test2复制到 test3:
SELECT * INTO test3 FROM test2 WHERE id = 1
结果如下:

4.备份表的一部分列(不写*而写出列的列表)和一部分行(加WHERE条件)
SELECT 列名1,列名2,列名3 INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件
我们把在 id 大于0 时,数据表 test1 的列 id,age 的数据复制到 test4:
SELECT id,age INTO test4 FROM test1 WHERE id > 0
结果如下:

5.只复制表的结构
这种情况,我们只要设置查询条件不成立即可。我们把表 test1 的表结构复制到新表 test5:
SELECT * INTO test5 FROM test1 WHERE 1=2
结果如下:

6.复制的结构数据来源于多个表
其实我们要多个表的查询结构作为一个数据源就行了,我们先看看表 test2 和 test4 目前的结果和数据:

然后我再把 id 相同下的 id,name,age 数据复制到新表 test6:
SELECT id,name,age INTO test6 FROM (SELECT test2.id,name,age FROM test2 INNER JOIN test4 ON test2.id = test4.id) as a
结果如下:

【SQL 代码】SQL复制数据表及表结构的更多相关文章
- sql创建备份表和复制数据到备份表
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable; ...
- SQL语句完成Excel数据导入数据库表中流程方法及注意事项
第一步:先查看数据库是否安装AccessDatabaseEngine_X64.exe, 如下图查看: 如果未安装先下载脚本之家下载地址 https://www.jb51.net/softs/29150 ...
- sql代码段添加数据
declare @i int,@index int set @i=1 set @index=0 while @i<1000000 begin set @inde ...
- ORACLE+PYTHON实战:复制A表数据到B表
最近在学习python ,看到了pythod的oracle,不仅可以一次fetch多条,也可以一次insert多条,想写一个复制A表数据到B表的程序来看看实际效率能不能提高.写完发现,非常惊艳!效率提 ...
- MySQL 复制表(表结构、表结构和数据)
MySQL 中使用 命令行 复制表结构及数据的方法主要有以下几种: 1.只复制表结构 CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2: ...
- sql server中备份数据的几种方式
当我们在写sql脚本要对数据表中的数据进行修改的时候,为了防止破坏数据,通常在开发前都会对数据表的数据进行备份,当我们sql脚本开发并测试完成后,再把数据恢复回来. 目前备份数据,我常用的方法有以下几 ...
- 用.net中的SqlBulkCopy类批量复制数据 (转载)
在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用. 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据. .NET 2.0有一个SqlBulkC ...
- 使用asp.net 2.0中的SqlBulkCopy类批量复制数据
介绍:在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用. 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据. ASP.NET 2.0有一个Sq ...
- 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)
动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的拼接和组装.可以简单的说成Mybatis中可以动态去的判断需不需要某些 ...
随机推荐
- hdu5178 尺取
会爆int /* 给定数轴上一些点对,问有多少点对之间的距离差不超过k 点对排序后尺取法:枚举每个左边界,找到一个右边界使得 */ #include<bits/stdc++.h> #def ...
- python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)
一.纸牌游戏 ...
- 《剑指offer》青蛙跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 很裸的斐波那契数列. class Solution { public: int jumpFloor ...
- DDD领域模型之分配权限(十三)
权限分配和权限查找. 在DDD.Domain工程中新建:BAS_PermissionAssign类 public partial class BAS_PermissionAssgin:Aggreate ...
- JS高级 - 面向对象5(继承,引用)
<script type="text/javascript"> //------------------Person类 //(Person)的构造函数 function ...
- java12小时制的时间转换为24小时制
Java中将12小时制的时间转换为24小时制的方式如下: import java.text.SimpleDateFormat; import java.util.Date; public class ...
- 小程序block标签配合if和else
<block wx:if="{{hasMore}}"> <view class="loading-tip">拼命加载中…</vie ...
- Codeforces 739C Alyona and towers 线段树
Alyona and towers 这个题写起来真的要人命... 我们发现一个区间被加上一个d的时候, 内部的结构是不变的, 改变的只是左端点右端点的值, 这样就能区间合并了. 如果用差分的话会简单一 ...
- 1.HTTP协议|web框架
1.web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...
- centos7 安装步骤
这里选择64位 32位没有找到网卡... 注:这里是网络类型分配,网络类型分配分为三种,Bridge,NAT和Host-Only,大概区别是 1 BRIDGE 桥接:相当于主机和虚拟机连接到同一个h ...