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复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...
- 【SQL 代码】SQL复制数据表及表结构
select * into 目标表名 from 源表名 from 源表名 以上两句都是将'源表'的数据插入到'目标表',但两句又有区别的: 第一句(select into from)要求目标表不存在, ...
- SQL复制数据表 (select * into 与 insert into)
select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将 源表 的数据插入到 目 ...
- sql创建备份表和复制数据到备份表
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable; ...
- [SQL]复制数据库某一个表到另一个数据库中
SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...
- sql server 数据遍历插入表变量
)) DECLARE @str VARCHAR(MAX) ,) ,@start INT ,@end INT ,) SET @str = '1,2,3,4,5,6,7,8' SET @split = ' ...
- MySQL 复制表(表结构、表结构和数据)
MySQL 中使用 命令行 复制表结构及数据的方法主要有以下几种: 1.只复制表结构 CREATE TABLE new_table SELECT * FROM old_table WHERE 1=2: ...
- ORACLE+PYTHON实战:复制A表数据到B表
最近在学习python ,看到了pythod的oracle,不仅可以一次fetch多条,也可以一次insert多条,想写一个复制A表数据到B表的程序来看看实际效率能不能提高.写完发现,非常惊艳!效率提 ...
- Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误
使用DOS 操作界面导出表数据,导入表数据(需要在数据库所在的服务器上边执行) exp UserName/Password@192.168.0.141/orcl file=d:\xtables.d ...
随机推荐
- java--字符串拼接比较
/** * 字符串拼接 */ public class StringAddDemo { public static void main(String[] args){ testStringAdd(); ...
- OpenCV常用基本处理函数(1)读写
图像的基本操作 cv.imread() 读取图片 cv.imshow() 显示图片 cv2.imwrite() 保存图像 使用摄像头捕获实时图像 OpenCV 为这中应用提供了 ...
- Go(二)函数
函数是一等公民 与其他主要编程语言的差异 1.可以有多个返回值 2.所有参数都是值传递 slice.map.channel会有传引用是错觉,如切片背后是数组,是一个数据结构,里面包含了指向对应数组的指 ...
- SEM推广引流效果的因素有哪些呢?
决定搜索引擎推广效果的基本就是流量,所引流过来的是有效流量还是无效流量,直接决定了推广的效果!那我们如何才能引流到最精准的流量把流量变现呢? 第一个就是关键词的匹配模式 "民营企业" ...
- Nginx加载多个CPU核心,worker_cpu_affinity
配置Nginx多核CPU,worker_cpu_affinity使用方法和范例1. 2核CPU,开启2个进程 worker_processes 2;worker_cpu_affinity 01 10; ...
- Wireshark协议分析1
一.界面简介 1.抓包工具栏 2.文件工具栏 3.包定位工具栏 4.颜色以及滚动界面工具栏 5.数据包列表字体定义工具栏 6.首选项工具栏 二.过滤规则 1.过滤 IP ip.src eq 192 ...
- MySQL 5.7配置文件
原文:http://www.voidcn.com/article/p-zrikccdi-hr.html # MySql5.7配置文件my.cnf设置[client]port = 3306socket ...
- windows 配置msys2环境
msys2是一个在windows下模拟类unix的环境,之所以叫环境,是用为他提供了部分unix shell类似的功能,这个环境使你像在unix上使用shell一样.看到msys2你可能想到是不是还有 ...
- 【网络是怎么连接的】一、浏览器与HTTP协议
浏览器: 1.生成HTTP消息: 1).网址结构: http://user:password@www.glasscom.com:80/dir/file1.htm 2).HTTP服务基本思路: a).请 ...
- Ubuntu16.04搜狗拼音输入法候选栏无法显示中文(英文乱码)
输入中文时,若候选栏显示英文乱码.无法显示中文,如下图所示,可按如下方式处理: cd ~/.config rm -rf SogouPY* sogou* 然后注销重新登录即可.