【SQL语句练习】(三)检索部分教师并插入新表

题目

本题目要求编写 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
);
发布了74 篇原创文章 · 获赞 83 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_43058685/article/details/104960552