insert into select(insert select)和select into from語句


 

1、insert into select(insert select)語句

要求目標表Table2必須存在,由於目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量

語句形式為:
1 Insert into Table2(field1,field2,...) select value1,value2,... from Table1

上面的語句比較適合兩個表的數據互插,如果多個表就不適應了。對於多個表,我們可以先將需要查詢的字段join起來,然后組成一個視圖后再select from就可以了,sql代碼如下所示:

1 INSERT INTO a(field1,field2) SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb
實例:

向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號“3”課程的同學學號、2號課的平均成績;

1 Insert score 
2 select s.id,'6',(Select avg(score) from score where course_id='2') 
3 from student s 
4 where s.id not in (Select student_id from score where course_id='3');
注意:

(1)要求目標表Table2必須存在,並且字段field,field2…也必須存在

(2)注意Table2的主鍵約束,如果Table2有主鍵而且不為空,則 field1, field2…中必須包括主鍵

(3)注意語法,不要加values,和插入一條數據的sql混了,不要寫成:

1 Insert into Table2(field1,field2,...) values (select value1,value2,... from Table1)  //錯誤的寫法

由於目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。

2、select into from 語句

要求目標表Table2不存在,因為在插入時會自動創建表Table2,並將Table1中指定字段數據復制到Table2中。示例如下

語句形式為:

1 SELECT vale1, value2 into Table2 from Table1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM