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代码,而不会影响实际的数据。

posted @ 2016-08-31 16:52  郑小超  阅读(2078)  评论(0)    收藏  举报