1、insert into select語句
要求目標表Table2必須存在,由于目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量
語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
上面的語句比較適合兩個表的數據互插,如果多個表就不適應了。對于多個表,我們可以先將需要查詢的字段join起來,然后組成一個視圖后再select from就可以了,sql代碼如下所示:
INSERT INTO a(field1,field2)SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb
2、select into from語句
要求目標表Table2不存在,因為在插入時會自動創建表Table2,并將Table1中指定字段數據復制到Table2中。示例如下
語句形式為:SELECT vale1, value2 into Table2 from Table1
學生選課數據庫SCT
學生表(學號,姓名,性別,年齡,院系編號,班級)
Student(S# char(8),Sname char(10),Ssex char(2),Sage integer,D# char(2),Sclass char(6)
院系表(院系編號,院系名稱,院長)
Dept(D# char(2),Dname char(10),Dean char(10))
課程表(課程編號,課程名稱,課時,學分,授課老師編號)
Course(C# char(3),Cname char(12),Chours integer,Ccredit float(1),T# char(3))
教師表(老師編號,姓名,所屬院系編號,工資)
Teacher(T# char(3),Tname char(10),D# char(2),Salary float(2))
選課表(學生學號,課程編號,成績)
SC(S# char(8),C# char(3),Score float(1))
插入:
1、新建Table: St(S#,Sname,avgScore),將檢索到的學生的平均成績新增到該表中
insert into St(S#,Sname,avgScore)
select S#,Sname,Avg(Score) from Student,SC where Student.S#=SC.S# group by Student.S#;
新聞熱點
疑難解答