- student(sno,sname,age,sdept) 学生表 - course(cno,cname,teacher) 课程表 - Studentcourse(sno,cno,grade)选课表 写出 sql 语句: - 查询所有课程都及格的学生号和姓名 - 查询平均分不及格的课程号和平均成绩 - 找出各门课程的平均成绩,输出课程号和平均成绩 - 找出没有选择 c2 课程的学生信息
时间: 2023-05-23 15:07:02 浏览: 138
1. 查询所有课程都及格的学生号和姓名:
SELECT s.sno, s.sname
FROM student s
WHERE NOT EXISTS (
SELECT *
FROM course c
WHERE NOT EXISTS (
SELECT *
FROM studentcourse sc
WHERE sc.cno = c.cno AND sc.sno = s.sno AND sc.grade >= 60
)
)
2. 查询平均分不及格的课程号和平均成绩:
SELECT sc.cno, AVG(sc.grade) AS avg_grade
FROM studentcourse sc
GROUP BY sc.cno HAVING AVG(sc.grade) < 60
3. 找出各门课程的平均成绩,输出课程号和平均成绩:
SELECT sc.cno, AVG(sc.grade) AS avg_grade
FROM studentcourse sc
GROUP BY sc.cno
4. 找出没有选择 c2 课程的学生信息:
SELECT s.*
FROM student s
WHERE NOT EXISTS (
SELECT *
FROM studentcourse sc
WHERE sc.sno = s.sno AND sc.cno = 'c2'
)
相关问题
利用sql server语言在下列表中创建学生选课成绩信息视图(sno,sname,sdept,cno,cname,grade)和创建教学基本信息视图(cno,cname,ctime,clocation,tno,tname,ttitle); 学生表stu (sno,sname ,ssex,sage ,sdept) 课程表course (cno,cname,clocation ) 选课表score (sno,cno,grade) 教师表teacher( tno,tname,ttitle) 教学表teaching(cno,tno,ctime,clocation)
创建学生选课成绩信息视图:
```
CREATE VIEW student_score AS
SELECT stu.sno, stu.sname, stu.sdept, score.cno, course.cname, score.grade
FROM stu
INNER JOIN score ON stu.sno = score.sno
INNER JOIN course ON score.cno = course.cno;
```
创建教学基本信息视图:
```
CREATE VIEW teaching_info AS
SELECT teaching.cno, course.cname, teaching.ctime, teaching.clocation, teacher.tno, teacher.tname, teacher.ttitle
FROM teaching
INNER JOIN course ON teaching.cno = course.cno
INNER JOIN teacher ON teaching.tno = teacher.tno;
```
以上代码是针对SQL Server语言的,如果需要在其他数据库中创建视图,语法可能会有所不同。
学生-课程数据库 • 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) • 课程表:Course(Cno,Cname,Cpno,Ccredit) • 学生选课表:SC(Sno,Cno,Grade)
• Sno:学生编号,主键
• Sname:学生姓名
• Ssex:学生性别
• Sage:学生年龄
• Sdept:学生所在院系
• Cno:课程编号,主键
• Cname:课程名称
• Cpno:先修课程编号,若无先修课程则为NULL
• Ccredit:课程学分
• Grade:学生选课成绩,若未考试则为NULL
注:SC表是学生选课表,其中Sno和Cno为外键,分别指向Student表和Course表的主键。
阅读全文