SQL中使用insert into select和 select into from

使用场合

一个表中数据使用另一个表中获取的或者一个表的数据增长一条。sql

insert into select

INSERT INTO SELECT 语句从一个表复制数据,而后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。数据库

SQL INSERT INTO SELECT 语法

  1. 从一个表中复制全部的列插入到另外一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1[where];

[]--表示能够使用where来肯定条件。oracle

举例以下:函数

insert into 
menu_tree
select * from menu_tree
where sid='6';
  1. 只复制但愿的列插入到另外一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_value(s)
FROM table1;

column_name(s)--表示表中存在的列,column_value(s)--表示这些列对应的值。sqlserver

举例以下:测试

insert into menu_tree(SID,CODE,NAME,ORDER_VAL)
select '10','10','一个部','10' from menu_tree where sid = '6'

select insert into

SELECT INTO 语句从一个表复制数据,而后把数据插入到另外一个新表中。code

注意:server

MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT 。table

SQL SELECT INTO 语法

  1. 复制全部的列插入到新表中:
SELECT *
INTO newtable [IN externaldb]
FROM table1;

sqlserver中已测试,Oracle中未作测试。oracle中,这个select into不能在语句中执行,必需要放到存储过程,函数等等里边执行。select

  1. 只复制但愿的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;

sqlserver中已测试,Oracle中未作测试。oracle中,这个select into不能在语句中执行,必需要放到存储过程,函数等等里边执行

相关文章
相关标签/搜索