Java中数据库8、查询每门课的平均成绩
时间: 2024-02-18 20:04:14 浏览: 120
要查询每门课的平均成绩,可以使用如下的 SQL 语句:
```
SELECT course_name, AVG(score) AS avg_score
FROM score
GROUP BY course_name;
```
其中,`score` 表是成绩表,包含了学生的学号、课程号和成绩等信息。`course_name` 是课程名称,是成绩表中的一个字段。`AVG(score)` 表示对每门课程的成绩求平均值,并将结果命名为 `avg_score`。`GROUP BY course_name` 表示按照课程名称进行分组,以便得到每门课程的平均成绩。
你可以在 Java 中使用 JDBC API 来执行这个 SQL 语句,并将结果展示出来。
相关问题
Java编写程序:输入5个同学的数学、英语、Java、数据库、C语言五门课程的 考试成绩 求出每个学生的平均分,将成绩和平均分一起打印出来
下面是一个Java程序,可以实现你的需求:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 定义一个二维数组存储成绩
double[][] scores = new double[5][5];
// 输入每个同学的成绩
for (int i = 0; i < 5; i++) {
System.out.printf("请输入第%d个同学的成绩(数学、英语、Java、数据库、C语言):\n", i+1);
for (int j = 0; j < 5; j++) {
scores[i][j] = scanner.nextDouble();
}
}
// 计算每个同学的平均分并输出
for (int i = 0; i < 5; i++) {
double sum = 0;
for (int j = 0; j < 5; j++) {
sum += scores[i][j];
}
double average = sum / 5;
System.out.printf("第%d个同学的成绩和平均分为:", i+1);
for (int j = 0; j < 5; j++) {
System.out.printf("%.1f\t", scores[i][j]);
}
System.out.printf("%.1f\n", average);
}
}
}
```
程序运行后,会提示你输入每个同学的成绩,依次输入即可。输入完毕后,程序会计算每个同学的平均分,并将成绩和平均分一起打印出来。输出结果类似如下:
```
请输入第1个同学的成绩(数学、英语、Java、数据库、C语言):
80 90 85 70 75
请输入第2个同学的成绩(数学、英语、Java、数据库、C语言):
90 85 75 80 90
请输入第3个同学的成绩(数学、英语、Java、数据库、C语言):
70 80 90 85 80
请输入第4个同学的成绩(数学、英语、Java、数据库、C语言):
85 75 80 90 85
请输入第5个同学的成绩(数学、英语、Java、数据库、C语言):
75 85 70 80 90
第1个同学的成绩和平均分为:80.0 90.0 85.0 70.0 75.0 80.0
第2个同学的成绩和平均分为:90.0 85.0 75.0 80.0 90.0 84.0
第3个同学的成绩和平均分为:70.0 80.0 90.0 85.0 80.0 81.0
第4个同学的成绩和平均分为:85.0 75.0 80.0 90.0 85.0 83.0
第5个同学的成绩和平均分为:75.0 85.0 70.0 80.0 90.0 80.0
```
使用mysql语句写出 8, 查询学生表中性别为 “女”、所在城市为“株洲”的学生姓名、出生日期。 9, 查询出生年份在1992年的学生姓名、性别、所在城市。 10. 查询所有学生分布的城市。 11, 查询《数据库应用技术》课程成绩大于等于80,小于等于90的学生学号、姓名。 12, 查询所有学生的选课信息,包括学号、姓名、性别、课程名、成绩。 13、查询《java編程》这门课最高分学生的学号、姓名。 14.统计每个学生的平均分,统计结果包括学号、平均成绩。 15, 查询课程平均分数大于80分的课程名称及课程平均分。 16, 统计每门课程的选课人数,統计结果包括课程名、人数。 17、在学生信息表的姓名列上建立普通索引。 18、查询所有学生学号,姓名,年龄(使用year函数)。 19. 创建视图,包含数据应用技术成績大于80分学生的学号、姓名、出生日期。 20. 删除课程号为03的课程信息。
8. SELECT name, birthdate FROM student WHERE gender='女' AND city='株洲';
9. SELECT name, gender, city FROM student WHERE YEAR(birthdate)=1992;
10. SELECT DISTINCT city FROM student;
11. SELECT student_id, name FROM score JOIN student ON score.student_id=student.id WHERE course_name='数据库应用技术' AND score>=80 AND score<=90;
12. SELECT student.id, student.name, student.gender, course.course_name, score.score FROM student JOIN score ON student.id=score.student_id JOIN course ON score.course_id=course.id;
13. SELECT student_id, student.name FROM score JOIN student ON score.student_id=student.id WHERE course_name='java編程' AND score=(SELECT MAX(score) FROM score WHERE course_name='java編程');
14. SELECT student_id, AVG(score) AS avg_score FROM score GROUP BY student_id;
15. SELECT course.course_name, AVG(score.score) AS avg_score FROM score JOIN course ON score.course_id=course.id GROUP BY course.course_name HAVING avg_score>80;
16. SELECT course.course_name, COUNT(DISTINCT student_id) AS num_students FROM score JOIN course ON score.course_id=course.id GROUP BY course.course_name;
17. CREATE INDEX idx_name ON student(name);
18. SELECT student.id, student.name, YEAR(NOW())-YEAR(student.birthdate) AS age FROM student;
19. CREATE VIEW view_good_scores AS SELECT student.id, student.name, student.birthdate FROM student JOIN score ON student.id=score.student_id WHERE score>=80 AND course_name='数据库应用技术';
20. DELETE FROM course WHERE course_id='03';
阅读全文