3、从学生表和成绩表中查询出已经选课学生的正确选课结果。要求显示出学生的学号、姓名和成绩。 4、从学生表、成绩表、课程表中查询出已经选课学生的,课程名称,授课教师。 5、从学生表和成绩表中查询出为张三的学生的选课结果。要求显示出学生的学号、姓名和成绩。 6、从学生表和成绩表中查询出成绩>85的选课结果。要求显示出学生的学号、姓名和成绩 7、选出授课教师为张慧所带学生的信息。要求显示出学生的姓名和成绩。将3-7题利用半联接查询优化算法
时间: 2024-02-05 16:13:50 浏览: 185
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
3、查询已选课学生的选课结果:
```
SELECT s.id, s.name, c.course_name, g.grade
FROM student s
INNER JOIN grade g ON s.id = g.student_id
INNER JOIN course c ON g.course_id = c.id;
```
4、查询已选课学生的课程及教师信息:
```
SELECT s.name, c.course_name, c.teacher_name
FROM student s
INNER JOIN grade g ON s.id = g.student_id
INNER JOIN course c ON g.course_id = c.id;
```
5、查询姓名为张三的学生的选课结果:
```
SELECT s.id, s.name, g.grade
FROM student s
INNER JOIN grade g ON s.id = g.student_id
WHERE s.name = '张三';
```
6、查询成绩大于85分的选课结果:
```
SELECT s.id, s.name, g.grade
FROM student s
INNER JOIN grade g ON s.id = g.student_id
WHERE g.grade > 85;
```
7、查询授课教师为张慧所带学生的信息:
```
SELECT s.name, g.grade
FROM student s
INNER JOIN grade g ON s.id = g.student_id
INNER JOIN course c ON g.course_id = c.id
WHERE c.teacher_name = '张慧';
```
使用半联接查询优化算法,将第4题中的INNER JOIN改为半联接:
```
SELECT s.name, c.course_name, c.teacher_name
FROM student s
INNER JOIN grade g ON s.id = g.student_id
LEFT JOIN course c ON g.course_id = c.id
WHERE c.course_name IS NOT NULL;
```
阅读全文