【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

结果如下:






本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/7171596.html,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
117 3
|
2月前
|
SQL 监控 关系型数据库
SQL错误代码1303解析与处理方法
在SQL编程和数据库管理中,遇到错误代码是常有的事,其中错误代码1303在不同数据库系统中可能代表不同的含义
|
2月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
2月前
|
SQL 关系型数据库 Serverless
sql注入原理与实战(四)数据表操作
sql注入原理与实战(四)数据表操作
|
4月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
47 1
|
3月前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
113 0
|
3月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
180 0
|
4月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
141 0
|
4月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
67 0
|
5月前
|
SQL 数据库 索引
SQL表结构设计
【7月更文挑战第28天】SQL表结构设计
72 6