SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制)

时间:2022-04-24
本文章向大家介绍SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、插入检索出的数据

select * from dbo.Customers_1

现在有个需求,需要将这张Customers_1表的数据合并到Customers_2表中,下面是解决代码:

insert into dbo.Customers_2(Company,Name,Province)
select Company,Name,Province
from dbo.Customers_1

ok,完成需求!

注意,这边可以通过Where和Group By等过滤数据在在进行插入,只要指定好需要插入的列和检索的列对应,且对应插入表的非插入列允许为空就可以!

insert into dbo.Customers_2(Company)
select Company
from dbo.Customers_1 group by Company

2、表之间的数据复制

select *  into test from Customers_2
select * from test

分析下第一行代码的执行流程,这条SELECT语句创建了一个名为test 的新表,并把Customers_2表的整个内容复制到新表中,因为这里使用的是Select *,所以将整个Customers_2表的内容都复制到了test表中,如果需要赋值部分列,可以明确给出列名,而不是使用*通配符。

在使用SELECT INTO复制表时,需要知道一些事情:

(1)任何SELECT选项和子句都可以使用,包括WHERE和GROUP BY;

(2)可利用联结从多个表中插入数据;

(3)不管从多少个表中检索数据,数据只能插入一个表;

注意:SELECT INTO 是试验新SQL语句前进行表赋值的很好的工具。在复制的数据上测试SQL代码,而不会影响实际的数据。