写出以下查询语句的关系代数表达式以及Sql代码。 (1)查询成绩在70到80分之间的学生的学号、课程号和成绩; (2)查询0002号课程成绩最高的分数 (3)查询信科系学生的选课情况,查询结果需要显示出学号、姓名、所属专业、课程名称、成绩。
时间: 2024-06-01 11:12:24 浏览: 21
(1)关系代数表达式:
σ 70 ≤ 成绩 ≤ 80 (选修)
Sql代码:
SELECT 学号, 课程号, 成绩
FROM 成绩表
WHERE 成绩 BETWEEN 70 AND 80
(2)关系代数表达式:
π 成绩 (σ 课程号=0002 (成绩表))
Sql代码:
SELECT MAX(成绩)
FROM 成绩表
WHERE 课程号='0002'
(3)关系代数表达式:
π 学号, 姓名, 专业, 课程名称, 成绩 ((学生表 ⨝ 选课表 ⨝ 成绩表) ⨝ 课程表)
Sql代码:
SELECT 学生表.学号, 学生表.姓名, 学生表.专业, 课程表.课程名称, 成绩表.成绩
FROM 学生表
JOIN 选课表 ON 学生表.学号 = 选课表.学号
JOIN 成绩表 ON 选课表.学号 = 成绩表.学号 AND 选课表.课程号 = 成绩表.课程号
JOIN 课程表 ON 选课表.课程号 = 课程表.课程号
WHERE 学生表.专业 = '信科系'
相关问题
在学生选课表 xsxkb 中,查询选修了成绩在70~80分的学生学号 xh 、课程代码 kcdm 和成绩 cj 信息。
您可以使用如下SQL语句查询选修了成绩在70~80分的学生学号 xh、课程代码 kcdm和成绩 cj 信息:
```
SELECT xh, kcdm, cj
FROM xsxkb
WHERE cj BETWEEN 70 AND 80;
```
其中,xsxkb代表学生选课表,xh代表学生学号,kcdm代表课程代码,cj代表成绩。BETWEEN 70 AND 80表示成绩在70~80分之间。
用sql语句写一个视图并查询平均成绩在90分以上的学生学号和平均成绩
可以使用如下的SQL语句创建视图:
```
CREATE VIEW v_sg AS
SELECT 学号, AVG(成绩) AS 平均成绩
FROM sg
GROUP BY 学号;
```
解释:
首先,我们使用 `CREATE VIEW` 语句来创建一个名为 `v_sg` 的视图。在视图的定义中,我们使用 `SELECT` 语句选择了 `学号` 和 `成绩` 列,并且使用 `AVG` 函数计算了每个学生的平均成绩。我们还使用 `GROUP BY` 子句将数据按照 `学号` 进行分组。
接着,我们可以使用下面的SQL语句查询平均成绩在90分以上的学生学号和平均成绩:
```
SELECT 学号, 平均成绩
FROM v_sg
WHERE 平均成绩 >= 90;
```
解释:
这里我们使用 `SELECT` 语句选择了 `学号` 和 `平均成绩` 列作为查询结果的输出。然后,我们在 `FROM` 子句中指定了视图 `v_sg` 作为数据来源。接着,我们使用 `WHERE` 子句对数据进行筛选,只保留平均成绩在90分以上的学生。