写出SQL语句,查询所开设的课程选修学生大于3人(提示:使用having)的教师信息,包括Tno、Tname列,将运行无误后的SQL语句写入答题文件夹中的MYSQL3.TXT保存。
时间: 2024-03-22 18:41:50 浏览: 13
好的,以下是SQL语句:
```
SELECT Teacher.Tno, Tname
FROM Teacher, Course, SC
WHERE Teacher.Tno = Course.Tno AND Course.Cno = SC.Cno
GROUP BY Teacher.Tno, Tname
HAVING COUNT(DISTINCT SC.Sno) > 3;
```
请注意,这个SQL语句是基于一些假设的,例如表格的结构和字段名称。如果实际情况与假设不符,可能需要做出一些修改才能使它正常运行。
相关问题
写出SQL语句,查询“计算机系”与“电子工程系”不同职称的教师的信息(注:即前者有而后者没有的职称),包括Tno、Tname和Prof列,
可以使用以下SQL语句查询:
```
SELECT Tno, Tname, Prof
FROM teacher
WHERE Dept = '计算机系' AND Prof NOT IN (
SELECT Prof
FROM teacher
WHERE Dept = '电子工程系'
);
```
该语句首先从 `teacher` 表中选取 `Tno`、`Tname` 和 `Prof` 列,然后使用 `WHERE` 子句筛选出 `Dept` 为 “计算机系” 且 `Prof` 不在子查询中出现的教师信息。子查询选出了 `Dept` 为 “电子工程系” 的教师的职称,因此该语句返回的是那些在 “计算机系” 有职称,但在 “电子工程系” 没有职称的教师的信息。
查询存在有85分及以上成绩的课程,并统计该课程选修学生总人数,包括tno,tname,cno,cname,snum列,snum为学生人数
好的,您需要查询存在有85分及以上成绩的课程,并统计该课程选修学生总人数的结果,包括tno,tname,cno,cname,snum列。以下是SQL语句实现:
```
SELECT t.tno, t.tname, c.cno, c.cname, COUNT(sc.sno) AS snum
FROM teacher t, course c, score sc
WHERE t.tno = c.tno AND c.cno = sc.cno AND sc.mark >= 85
GROUP BY t.tno, t.tname, c.cno, c.cname;
```
这条SQL语句会先从teacher、course和score三张表中获取tno、tname、cno、cname和mark列的数据。然后,它会将这三张表连接起来,并筛选出成绩大于等于85的记录。最后,它会按照tno、tname、cno和cname进行分组,并统计每组中学生的数量,即选修该课程的学生总人数。