原文链接

SELECT INTO 作用

SELECT INTO 语句从一个表中复制数据,然后将数据插入到另一个新表中。

SELECT INTO 语法

我们可以把所有的列都复制到新表中:

SELECT *
INTO newtable [IN externaldb]
FROM table1;

或者只复制希望的列插入到新表中:

SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;

提示:将使用SELECT语句中定义的列名和类型创建新表。您可以使用AS子句来应用一个新名称。

 

示例数据库

我们使用"Customers"表来作示例

SELECT INTO 实例

创建 Customers 的备份复件:

SELECT *
INTO CustomersBackup2018
FROM Customers;

可以得到一个和Customers表结构及数据一模一样的表CustomersBackup2018

下面我们来复制表到另一个数据库AdventureWorks中,结果与Customers表中的一样。

SELECT *
INTO AdventureWorks.dbo.CustomersBackup2018
FROM Customers;

如下就是AdventureWorks数据库中刚复制过来的表CustomersBackup2018

只复制一些列插入到新表中:

SELECT 姓名, 地址
INTO CustomersBackup2018_1
FROM Customers;

CustomersBackup2018_1表中的结果:

只复制广东省的客户插入到新表中:

SELECT *
INTO CustomersBackup2018_2
FROM Customers
WHERE 省份='广东省';

CustomersBackup2018_2中的数据如下:

复制多个表中的数据插入到新表中:

SELECT c.姓名, o.订单ID
INTO CustomersOrderBackup2018
FROM Customers c
LEFT JOIN Orders o
ON c.客户ID=o.客户ID;

CustomersOrderBackup2018表中的数据如下:

 

提示:SELECT INTO 语句可以用于在另一种模式下创建一个新的空表,即只有表结构,没有数据。只需添加WHERE子句,使查询返回时没有数据:

SELECT *
INTO newtable
FROM table1
WHERE 1=0;

INSERT INTO SELECT 作用

INSERT INTO SELECT 语句从表中复制数据,并将数据插入现有的表中。目标表中的任何现有行都不会受到影响。

 

INSERT INTO SELECT 语法

我们可以将所有列从一个表中复制到另一个已经存在的表中:

INSERT INTO table2
SELECT * FROM table1;

或者我们可以把想要的列复制到另一个现有的表中:

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

示例数据库

以下是"Customers"表中的数据:

选自 "Suppliers" 表的数据:

INSERT INTO SELECT 实例

把 "Suppliers" 一栏复制到 "Customers" 一栏:

实例

INSERT INTO Customers (姓名, 省份)
SELECT 供应商名称, 省份 FROM Suppliers;

结果如下:

只将上海供应商的副本插入 "Customers" :

实例

INSERT INTO Customers (姓名, 省份)
SELECT 供应商名称, 省份 FROM Suppliers
WHERE 省份='上海市';

结果如下:

批注

SELECT INTO 用来复制表和表结构是非常方便的,特别是在进行表之间计算时,可以将部分数据先插入到一个临时表中,计算完成再删除该临时表。INSERT INTO SELECT则是插入语句的另外的一种写法,可以直接将查询的结果插入到需要的表中,从而省去逐条手工插入数据的过程。

SQL学习——SELECT INTO和INSERT INTO SELECT的更多相关文章

  1. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

    https://www.cnblogs.com/mq0036/p/4155136.html 我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个tabl ...

  2. SQL中SELECT INTO和INSERT INTO SELECT语句介绍

    表复制是经常要用到的操作,下面就将为您介绍SQL中SELECT INTO和INSERT INTO SELECT语句,供您参考. Insert是T-sql中常用语句,Insert INTO table( ...

  3. oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  4. SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据

    SELECT INTO和INSERT INTO SELECT的区别   数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Ta ...

  5. SELECT INTO 和 INSERT INTO SELECT比较

    Insert是T-sql中常用语句,但我们在开发中经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用S ...

  6. SELECT INTO 和 INSERT INTO SELECT

    做数据库开发的过程中难免会遇到有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来进行表数据复制,下面简单的介绍下: 1.INSERT INTO ...

  7. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  8. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  9. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句.txt

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  10. select into 、 insert into select 、create table as select复制表

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...)  values(value1,value2,...)这种形式的在应用程序开发中必不可少.但 ...

随机推荐

  1. mfc通过信号量保证线程同步

    1.声明一个全局handle,记住在cpp里也声明 extern HANDLE uiHandle; 2.创建信号量 uiHandle = CreateSemaphore(NULL,1,1,NULL); ...

  2. kubernetes之StatefulSet部署zk和kafka

    前提 至少需要三个node节点,否则修改亲和性配置 如果外部访问,需要自己暴露 需要有个storageClass,这样做的原因是避免手动创建pv了 部署zk和kafka 参考: https://www ...

  3. 不要在viewWillDisappear:方法中移除通知

    都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用. 这看上去没什么问题,键盘的显示和隐 ...

  4. Golang sync.WaitGroup的用法

    0x01 介绍 经常会看到以下了代码: 12345678910111213 package main import ( "fmt" "time") func m ...

  5. python3 正则表达式 re模块之辣眼睛 计算器

    额...学到几个常用模块了,也要其中考试了,每天晚上敲一点,敲得脑壳疼,不过又想到好一点的办法了,有时间再改吧. 此非吾所欲也,实属无奈也....复习之路漫漫,吾将到书上求索,在此不多逗留,我挥一挥衣 ...

  6. 解决SpringMVC拦截静态资源的问题

    优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...

  7. 【SVN】总结:svn“Previous operation has not finished; run 'cleanup' if it was interrupted“

    svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”.无论你到那个父 ...

  8. PTA(Advanced Level)1067.Sort with Swap(0, i)

    Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy to sort them in increasing order ...

  9. SQL 十位随机数(大小写字母+数据)

    USE [TEST]GO/****** Object: UserDefinedFunction [dbo].[RANDTENNUMS] Script Date: 2019/7/23 15:40:16 ...

  10. uniapp如何使用阿里iconfont

    1.将iconfont中需要的图标,添加到购物车,然后添加到自己的项目.生成在线代码. 2.点击下载至本地.然后解压后复制 iconfont.css 文件到你的项目. 3.复制第一步生成的代码,替换i ...