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. libstdc++适配Xcode10与iOS12

    编译报错 当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭ 如果你的工程中如果依赖 lib ...

  2. Thread中的join()方法

    package com.qjc.thread; public class JoinExcemple { // join方法就是用来同步的 public static void main(String[ ...

  3. nginx [alert] 12339#0: 1024 worker_connections are not enough

    进一步分析报错原因,具体步骤如下: l  查看这两台系统最大的允许文件打开数 [root@nginx01 logs]# cat /proc/sys/fs/file-max 343927 l  通过ul ...

  4. js前端导出Excel表格后数字自动变成科学计数法问题

    一般的文件导出都是后端进行导出,最近一个项目遇到导出接口挂掉了,前端实现导出的情况. 背景是vue框架,iView组件.可以直接使用exportCsv方法进行导出. 导出时进行一下行和列的切割就可以了 ...

  5. 1.3 Windows注册表

    如何打开Windows注册表呢? 方法一:Win+R打开命令行,再输入regetdit,回车. 方法二:打开计算机,进入系统所在盘,进入Windows\System32文件夹,找到regedt32,双 ...

  6. python学习之类的反射

    在学习网络编程的时候用到反射,然后发现自己反射这部分的应用不是很熟练,决定返回来重新整理一下 对于类的反射,主要有四个用法,下面都说一下 1.hasattr 判断对象或者类是否存在指定的属性,看代码以 ...

  7. Linux内核入门到放弃-时间管理-《深入Linux内核架构》笔记

    低分辨率定时器的实现 定时器激活与进程统计 IA-32将timer_interrupt注册为中断处理程序,而AMD64使用的是timer_event_interrupt.这两个函数都通过调用所谓的全局 ...

  8. Nginx(三)------nginx 反向代理

    Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能,比如后面会介绍的负载均衡.本篇博客我们会先介绍 Nginx 的反向代理,当然 ...

  9. SpringBoot整合RabbitMQ-服务安装

    本系列是学习SpringBoot整合RabbitMQ的练手,包含服务安装,RabbitMQ整合SpringBoot2.x,消息可靠性投递实现等三篇博客. 学习路径:https://www.imooc. ...

  10. Elasticsearch 通关教程(二): 索引映射Mapping问题

    数据库建表的时候,我们的DDL语句一般都会指定每个字段的存储类型,例如:varchar,int,datetime等等,目的很明确,就是更精确的存储数据,防止数据类型格式混乱. CREATE TABLE ...