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不能在語句中執行,必需要放到存儲過程,函數等等裏邊執行

相關文章
相關標籤/搜索