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 ...
随机推荐
- vs code常用插件(python)
1.chinese 作用:vscode设置为中文. 使用方法:Ctrl+Shift+P:输入 "config":选择zh 2.python 作用:调试 3.autoDocstrin ...
- SQL中LEFT JOIN ON AND 与 LEFT JOIN ON WHERE的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. ON...WHERE ' order by ts.id SQL执行过程: 生成临时表: ON条件: ...
- vue中使用iview表单验证时this指针问题
需求 使用iview,在提交时对值b进行验证,使其不能大于值a 实现 <Form ref="config" :model="config" :rules= ...
- 2019 ICPC Asia Nanchang Regional E Eating Plan 离散化+前缀和
题意: 给你n个盘子,这n个盘子里面分别装着1!到n!重量的食物,对于每一个询问k,找出一个最短的区间,使得区间和 mod 998857459 大于或等于k 盘子数量 n<=1e5 询问次数 m ...
- MySQL 关于case when结合group by用时的写法举例
原表是个员工档案,共583人,但case when结合group by用时,写法不同,其出来的结果也不同 例1: select distinct a.Branch,case when kultur = ...
- 67、saleforce的object的describe方法使用
使用Schema类的describesSObjects方法获取描述sObject结果.使用此方法可以通过sObject类型名称描述一个或者多个sObject描述信息. //sObject types ...
- ORA-13639: The CURRENT operation was interrupted because it timed OUT
该错误是由于SQL Tune Job执行超时导致,默认“Time Limit"是3600秒,即一个小时.DECLARE l_sql_tune_task_id CLOB; BEGIN ...
- token的创建及解析
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifac ...
- 字母所对应的Unicode编码
A~Z 65~90 a~z 97~122 public class Unicode { public static void main(S ...
- 一份详尽的 Java 问题排查工具清单,值得收藏!
| grep 5 -A 3 #上匹配seq 10 | grep 5 -B 3 #下匹配seq 10 | grep 5 -C 3 #上下匹配,平时用这个就妥了cat f.txt | g ...