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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏精讲JAVA

百万数据查询优化技巧三十则

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 应尽量避免在 where 子句中对字段进行 null ...

2119
来自专栏程序猿

Mssql高级注入笔记

暴库特殊技巧::%5c='\' 或者把/和\ 修改%5提交 and 0<>(select count(*) from master.dbo.sysdatabas...

3847
来自专栏码云1024

sql 复习练习

4516
来自专栏Spark学习技巧

SparkSql 中外连接查询中的谓词下推规则

SparkSql SparkSql是架构在spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂...

2869
来自专栏杨建荣的学习笔记

MySQL和Oracle对比学习之事务(r5笔记第4天)

MySQL中的存储引擎很是丰富,常用的有InnoDB,MyISAM等,也查看了不少的资料,基本也有所了解,从一些参考书中看MySQL中的sql部分也是一扫而过,...

4698
来自专栏hbbliyong

SQLite事务 SQLite插入多条语句为什么这么慢?.net (C#)

今天有个朋友测试 SQLite,然后得出的结论是: SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟! 下面是他发给我的测试代码。我晕~~~~...

4147
来自专栏坚毅的PHP

mysql DUPLICATE KEY UPDATE 问题

DUPLICATE KEY UPDATE batch执行时出死锁错误 背景知识 一、 mysql  insert 与 duplicate key: 典型的插入语...

4865
来自专栏琯琯博客

MySQL 查询优化

24911
来自专栏程序你好

30个MySQL千万级大数据SQL查询优化技巧详解

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

5843
来自专栏cs

ASP.NET 数据库访问

新建数据,采用sql server数据库 use dflx; create table person --建立表 ( name char(12), ...

5236

扫码关注云+社区

领取腾讯云代金券