【SQL】INSERT INTO SELECT语句与SELECT INTO FROM语句

  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 --1、创建测试表
 2 CREATE TABLE Table_1(
 3     [name_1] [nchar](10) NULL,
 4     [age_1] [int] NULL
 5 )
 6 CREATE TABLE Table_2(
 7     [name_2] [nchar](10) NULL,
 8     [age_2] [int] NULL
 9 )
10
11 --2、添加测试数据
12 Insert into Table_1 values(‘Jack‘,20)
13 Insert into Table_1 values(‘Lily‘,25)
14
15 --3、复制表数据部分列和常值
16 Insert into Table_2(name_2,age_2) select name_1,25 from Table_1
17 --或
18 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示例:

1 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 --1. 复制表结构及其数据:
2 create table new_table as select * from old_table
3 --2. 只复制表结构:
4 create table new_table as select * from old_table where 1=2;
5 --或者:
6 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

原文地址:https://www.cnblogs.com/willingtolove/p/9736207.html

时间: 2024-10-18 17:02:51

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

[22]SQL INSERT INTO SELECT 语句

[22]SQL INSERT INTO SELECT 语句 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中.目标表中任何已存在的行都不会受影响. SQL INSERT INTO SELECT 语法 我们可以从一个表中复制所有的列插入到另一个已存在的表中: INSERT INTO table2 SELECT * FROM table1; 或者我们可以只复制希望的列插入到另一个已存在的表中: INSERT INTO table2 (column_name

oracle sql 基础(二):select 语句

为了从数据库中查询数据,你需要用SQL语言中使用最多的SELECT语句.我们分别介绍SELECT语句的基础语法.子查询.从多表中查询数据,然后再进行实例解析. 一.SELECT语句的基础语法 SELECT语句就像叠加在数据库表上的过滤器,即选择查询用于定位数据库特定的列和行.下面是SELECT语句的基础语法.  SELECT [ALL|DISTINCT SELECT_LIST FROM {table_name|view_name} [WHERE search_condition] [GROUP

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

create table  as select * from和insert into select from两种表复制语句区别 [sql] view plain copy create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插

LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)

Select/Distinct操作符 适用场景:o(∩_∩)o- 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来:延迟. Select/Distinct操作包括9种形式,分别为简单用法. 匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式. 嵌套类型形式.本地方法调用形式.Distinct形式. 1.简单用法: 这个示例返回仅含客户联系人姓名的序列. var q = from c i

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

select into from和insert into select from两种表复制语句区别 select * into target_table from source_table; insert into target_table(column1,column2) select column1,5 from source_table; 以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别.第一句(select into from)要求目标

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

关于Sql中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意. 今天在一次面试的时候自己见到了,感觉没一点的印象,所以也就没有答上来,现在整理一下吧,希望提醒自己,也能够帮到其他的朋友.如下: (8) SELECT (9)DISTINCT (11) <TOP_specification> <select_list> (1) FROM <left_table> (3) <join_

LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg

上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ to SQL.LINQ to Entities.LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作.所以先来学习LINQ to SQL,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用.

SQL:insert来至select的数据

今天需要插入某条数据,但是该内容来至某条select语句,经过查询,得出以下结论 INSERT INTO `role_directory_rel`(`directoryId`, `roleId`) select id,1 from `directory` where `consoleUrl`='toCreateAwardPool.action'; 注意前面要插入的数据需要和后面查询的参数个数对应

SQL Server(三):Select语句

1.最基本的Select语句: Select [Top n [With Ties]] <*|Column_Name [As <Alias>][, ...n]> From <Table_name> Order by <Column_Name [DESC]>[, ...n] 1)*(星号)表示所有列,在选择特定列时可以在结果集中更改显示的列名 Select * from ProductsSelect ProductID,ProductName,CategoryI