有学生成绩数据库 •学生(学号,姓名,年龄,性别,专业,平均学分积点) •课程(课程号,课名,学分) •成绩(学号,课程号,成绩,积点) 编写一个存储过程,完成统计学生的平均年龄。
时间: 2023-11-16 15:21:28 浏览: 34
好的,以下是我为您编写的存储过程:
```mysql
CREATE PROCEDURE CalculateAvgAge()
BEGIN
DECLARE avg_age FLOAT;
SELECT AVG(age) INTO avg_age FROM students;
SELECT avg_age AS 'Average Age';
END
```
这个存储过程不需要任何参数,它将从 `students` 表中查询所有学生的年龄,并计算它们的平均值。最后,将计算出的平均年龄返回给用户。
您可以通过以下方式调用这个存储过程:
```mysql
CALL CalculateAvgAge();
```
请注意,这个存储过程假设您的学生信息已经保存在了名为 `students` 的表中,并且每个学生都有一个 `age` 字段来存储他们的年龄。
相关问题
学生(学号,年龄,性别,系名) 课程(课号,课名,学分,学时) 选课(学号,课号,成绩) 根据上面基本表的信息完成下列查询。 1 查询选修了数据库原理的学生的人数和平均成绩。 2 查询选修3门课 以上的学生姓名。 3列出人数超过1000人的系名。 4 查询所有课程都及格的学生姓名。用sql语句完成查询curpos-1232-396-438
1. 查询选修了数据库原理的学生的人数和平均成绩。
```
SELECT COUNT(DISTINCT 选课.学号) AS 选修人数, AVG(选课.成绩) AS 平均成绩
FROM 选课
JOIN 学生 ON 学生.学号 = 选课.学号
JOIN 课程 ON 课程.课号 = 选课.课号
WHERE 课程.课名 = '数据库原理';
```
2. 查询选修3门课以上的学生姓名。
```
SELECT 学生.姓名
FROM 学生
JOIN (
SELECT 学号, COUNT(*) AS 选修课程数
FROM 选课
GROUP BY 学号
HAVING COUNT(*) >= 3
) AS 选修课程数表 ON 选修课程数表.学号 = 学生.学号;
```
3. 列出人数超过1000人的系名。
```
SELECT 系名
FROM 学生
GROUP BY 系名
HAVING COUNT(DISTINCT 学号) > 1000;
```
4. 查询所有课程都及格的学生姓名。
```
SELECT 学生.姓名
FROM 学生
WHERE NOT EXISTS (
SELECT *
FROM 课程
WHERE NOT EXISTS (
SELECT *
FROM 选课
WHERE 选课.学号 = 学生.学号 AND 选课.课号 = 课程.课号 AND 选课.成绩 >= 60
)
);
```
在oracle数据库中有三个表: S(Sno,Sname,Sgender,Sage,Sdept) 学生(学号,姓名,性别,年龄,系) SC(Sno,Cno,Grade) 选课(学号,课程号,成绩) C(Cno,Cname,Cpno,Ccredit) 课程(课程号,课程名,先行课,学分) 如何找出课程平均分第二的学生的SC表的信息;
可以使用以下 SQL 语句来找出课程平均分第二的学生的 SC 表的信息:
```
SELECT SC.Sno, AVG(SC.Grade) AS avg_grade
FROM SC
GROUP BY SC.Sno
HAVING AVG(SC.Grade) < (
SELECT MAX(avg_grade)
FROM (
SELECT AVG(SC.Grade) AS avg_grade
FROM SC
GROUP BY SC.Cno
ORDER BY AVG(SC.Grade) DESC
OFFSET 1 ROW FETCH NEXT 1 ROW ONLY
) t
)
ORDER BY AVG(SC.Grade) DESC
FETCH FIRST 1 ROW ONLY;
```
这里的思路是首先找出每个学生的平均分,然后找到平均分排名第二的课程平均分,再找到平均分小于该值的学生,按平均分降序排列,最后选取第一行即为所求。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)