题目
本题目要求编写 Insert语句, 检索suo所授每门课程平均成绩均大于70分的教师姓名,并将检索的值插入一个新的教师表faculty表
中
数据表
CREATE TABLE `cou` (
`cno` char(4) NOT NULL,
`cname` varchar(30) NOT NULL,
`credit` smallint(6) DEFAULT NULL,
`ptime` char(5) DEFAULT NULL,
`teacher` char(10) DEFAULT NULL,
PRIMARY KEY (`cno`)
)
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `cou` (`CNO`)
);
CREATE TABLE `faculty` (
`tname` char(10) DEFAULT NULL
)
思路
先选出当前被选课程中平均在70以下的课程的任课老师,然后选出当前被选课程的所有任课老师且不在之前选出的老师中,这些老师就是所授每门课程平均成绩均大于70分的老师。
SQL语句
用select
的查询结果作为数据插入到新的表中
insert into table1(column1,column2,……) (select column1,column2,…… from table2)
insert into faculty(tname)
select distinct cou.teacher from sc
inner join cou on cou.cno=sc.cno
where cou.teacher not in
(
select cou.teacher from sc
inner join cou on cou.cno=sc.cno
group by sc.cno
having avg(grade)<=70
);