SQL基础 insert table_name_1 (field1,field2,...) select value1,value2,... from table_name_2 ...

今天继续学习SQL基础部分,其中书上给出一个案例,源码如下:

 

insert 课程注册
(学号,课程号,教师编号,专业代码,专业学级,选课类型,学期,学年,成绩,学分)
select distinct 学生.学号,教师任课.课程号,教师任课.教师编号,教学计划.专业代码,
教学计划.专业学级,教学计划.课程类型,教学计划.开课学期,0,0,0
from 学生
join 班级 on 学生.班级代码=班级.班级代码
join 教学计划 on 班级.专业代码=教学计划.专业代码
join 教师任课 on 教学计划.课程号=教师任课.课程号

  

其中的语法是:

insert table_name_1  (field1,field2,...)

select value1,value2,...

from table_name_2
...

或者

Insert into table_name_1 select * from table_name_2

  

 

应用案例:

在项目中,需要统计数据,从基础表中的数据进行统计,并插入到汇总表中

在书中的案例,就是查询【学生】、【班级】、【教学计划】、【教师任课】表中的数据,插入到【课程注册】表中进行汇总

field 必须与 values 须一致

 

注意:

(1)要求目标表 table_name_1 必须存在,并且字段field,field2...也必须存在

(2)注意 table_name_1 的主键约束,如果 table_name_1 有主键而且不为空,则 field1, field2...中必须包括主键

(3)注意语法,不要加values,和插入一条数据的sql混了,不要写成: Insert into table_name_1 (field1,field2,...) values (select value1,value2,... from table_name_2)

 

SQL基础 insert table_name_1 (field1,field2,...) select value1,value2,... from table_name_2 ...

上一篇:JDBC、Tomcat为什么要破坏双亲委派模型?


下一篇:SQL-mysql架构入门