INSERT INTO SELECT语句与SELECT INTO FROM语句,都是将一个结果集插入到一个表中;

#INSERT INTO SELECT语句

1、语法形式:

Insert into Table2(field1,field2,…) select value1,value2,… from Table1

  或

Insert into Table2 select * from Table1

2、限定条件:

  (1)Table2必须存在,并且字段field,field2…也必须存在;

  (2)如果Table2有主键而且不为空,并且没有设置自增长,则 field1, field2…中必须包括主键;

  (3)不要和插入一条数据的sql混了,不要写成:

      Insert into Table2(field1,field2,…) values (select value1,value2,… from Table1)

  (4)field与value的数据类型要对应上;

3、sql示例:

 --1、创建测试表
CREATE TABLE Table_1(
[name_1] [nchar](10) NULL,
[age_1] [int] NULL
)
CREATE TABLE Table_2(
[name_2] [nchar](10) NULL,
[age_2] [int] NULL
) --2、添加测试数据
Insert into Table_1 values('Jack',20)
Insert into Table_1 values('Lily',25) --3、复制表数据部分列和常值
Insert into Table_2(name_2,age_2) select name_1,25 from Table_1
--或
Insert into Table_2 select * from Table_1

#SELECT INTO FROM语句

1、语法形式:

SELECT value1, value2 into Table_2 from Table_1

2、限定条件:

  (1)要求目标表Table_2不存在,因为在插入时会自动创建表Table_2;

3、sql示例:

 select name,age into Table_3 from  Table_2

4、注意:

  如果在sql/plus或者PL/SQL执行这条语句,会报”ORA-00905:缺失关键字”错误,原因是PL-SQL与T-SQL的区别。

  T-SQL中该句正常,但PL/SQL中解释是:

  select..into is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.

  即不能单独作为一条sql语句执行,一般在PL/SQL程序块(block)中使用。

  如果想在PL/SQL中实现该功能,可使用 : Create table newTable as select * from oldTable;

 --1. 复制表结构及其数据:
create table new_table as select * from old_table
--2. 只复制表结构:
create table new_table as select * from old_table where 1=2;
--或者:
create table new_table like old_table

  表new_table除了没有键,其他的和表old_table一样;

5、应用场景:

  (1)SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

  (2)把查询的结果集插入到新表;

#参考:

  https://blog.csdn.net/weixin_39415084/article/details/76170240

【SQL】INSERT INTO SELECT语句与SELECT INTO FROM语句的更多相关文章

  1. 【Oracle】INSERT INTO SELECT语句和SELECT INTO FROM语句的区别

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  2. mysql5.7官网直译SQL语句优化--select语句优化

    8.2 sql语句优化 大致内容如下: 8.2.1:SELECT语句的优化 8.2.2:优化子查询,派生表和试图引用 8.2.3:优化INFORMATION_SCHEMA查询 8.2.4:优化数据改变 ...

  3. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  4. SQL入门语句之SELECT和WHERE

    一.SQL入门语句之SELECT SELECT语句用于从数据库表中获取数据,结果表的形式返回数据.这些结果表也被称为结果集 1.从数据库表中取部分字段 select 字段A,字段B from tabl ...

  5. SQL Server(三):Select语句

      1.最基本的Select语句: Select [Top n [With Ties]] <*|Column_Name [As <Alias>][, ...n]> From & ...

  6. 容易被忽略的事----sql语句中select语句的执行顺序

    关于Sql中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意. 今天在一次面试的时候自己见到了,感觉没一点的印象, ...

  7. select into from和insert into select from两种表复制语句区别

    select into from和insert into select from两种表复制语句都是将源表source_table的记录插入到目标表target_table,但两句又有区别. 第一句(s ...

  8. [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步

    同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9455721 连接数据库与SQL语句的Select语句初步 ”前文再续, ...

  9. 【SQL学习笔记】一、select语句

    SQL有别于其他的编程语言的一点在于首先处理的并不是写在第一行的语句(select),而是from字句. 为了更详细的了解select语句的每个部分,举例如下: 该语句返回的结果是下订单超过4次的女顾 ...

随机推荐

  1. 微信小程序发红包

    背景: 近期一个朋友公司要做活动,活动放在小程序上.小程序开发倒是不难,不过要使用小程序给微信用户发红包,这个就有点麻烦 确定模式: 小程序目前没有发红包接口,要实现的话,只能是模拟红包,即小程序上做 ...

  2. Python爬虫之正则表达式(2)

    # 最常规的匹配 import re content = 'Hello 123 4567 World_This is a Regex Demo' print(len(content)) result ...

  3. 利用java实现excel转pdf文件

    在有些需求当中我们需要抓取字段并且填充到excel表格里面,最后将excel表格转换成pdf格式进行输出,我第一次接触这个需求时,碰到几个比较棘手的问题,现在一一列出并且提供解决方案. 1:excel ...

  4. 转 Angular2优质学习资源收集

    文档博客书籍类 官方网站: https://angular.io 中文站点: https://angular.cn Victor的blog(Victor是Angular路由模块的作者): https: ...

  5. Thirft简单使用

    安装Thrift 到thrift官网下载thrift.exe http://thrift.apache.org/download 将thrift-0.10.0.exe复制到C:\Program Fil ...

  6. Ajax概述和判断用户名是否存在的简单代码练习

    在本代码中主要体现,Ajax实现了部分位置的刷新.不需要重新刷新网页,重新请求服务器.下面用过代码来对Ajax更深的认识 这里需要创建,一个jsp文件(显示登录界面),js文件(对Ajax的主要设置) ...

  7. Oracle Metric sequence load elapsed time

    Oracle Metric sequence load elapsed time The sequence load elapsed time Oracle metric is the amount ...

  8. 理解MySQL数据库事务

    1. 什么是事务处理? 事务处理是一种机制,它是用来管理必须成批执行的mysql操作.来保证数据库不完整的操作结果. 2. 为什么要使用事务处理? 在使用mysql操作数据的过程中,如果只是简单的中小 ...

  9. .NET IL实现对象深拷贝

    对于深拷贝,通常的方法是将对象进行序列化,然后再反序化成为另一个对象.例如在stackoverflow上有这样的解决办法:https://stackoverflow.com/questions/785 ...

  10. 「学习笔记」min_25筛

    前置姿势 魔力筛 其实不看也没关系 用途和限制 在\(\mathrm{O}(\frac{n^{0.75}}{\log n})\)的时间内求出一个积性函数的前缀和. 所求的函数\(\mathbf f(x ...