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 ...
随机推荐
- 禁用ubuntu启用虚拟内存swap
一.不重启电脑,禁用启用swap,立刻生效 # 禁用命令 sudo swapoff -a # 启用命令 sudo swapon -a # 查看交换分区的状态 sudo free -m 二.重新启动电脑 ...
- k8s-mysql搭建
安装官方文档https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ 搭建完成,但是没 ...
- css3 渐变色兼容移动端
.group_1 background #1a78f3 // 兼容不显示渐变色的浏览器 background: linear-gradient(180deg, #1a78f3 , #fff); bac ...
- OpenCV常用基本处理函数(1)读写
图像的基本操作 cv.imread() 读取图片 cv.imshow() 显示图片 cv2.imwrite() 保存图像 使用摄像头捕获实时图像 OpenCV 为这中应用提供了 ...
- ActiveMQ消息中间件Producer和Consumer
ActiveMQ消息中间件Producer和Consumer 原创jethai2015-08-18 18:08:56评论(0)1480人阅读 生产者代码: 1 2 3 4 5 6 7 8 9 10 ...
- sql格式化工具推荐
还在为上百行甚至上千行冗余的sql烦恼吗?这里推荐一款在线美化sql的工具 工具地址:http://www.matools.com/sql 怎么样,黑屏界面是不是带有满满的黑科技感? 该工具支持ora ...
- python re模块常用的正则表达式
'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r&qu ...
- docker-compose 搭建 Redis Sentinel 测试环境
docker-compose 搭建 Redis Sentinel 测试环境 本文介绍如何使用 docker-compose 快速搭建一个 Redis Sentinel 测试环境.其中 Redis 集群 ...
- SecureCRT key登录linux ssh设置
一.首先用secureCrt创建密钥 1.使用SecureCRT创建私钥和公钥. SecureCRT quick Connect-> Authentiation -> Public Key ...
- Gym 102021D : Down the Pyramid(思维)
Do you like number pyramids? Given a number sequence that represents the base, you are usually suppo ...