3、修改自己建立的学生成绩表视图(如张欣,v_zx;),包括学生的学号、姓名、班级、课程编号、课程名称、成绩信息
时间: 2024-12-13 08:28:09 浏览: 7
为了创建或修改一个名为 `v_zx` 的视图,该视图包括学生的学号、姓名、班级、课程编号、课程名称和成绩信息,可以使用以下 SQL 语句:
```sql
CREATE OR REPLACE VIEW v_zx AS
SELECT
s.sNo AS 学号,
s.sName AS 姓名,
s.deptName AS 班级,
c.cNo AS 课程编号,
c.cName AS 课程名称,
sc.grade AS 成绩
FROM
student s
JOIN
score sc ON s.id = sc.sId
JOIN
course c ON sc.cId = c.id;
```
这条 SQL 语句做了以下几件事:
1. 使用 `CREATE OR REPLACE VIEW` 语法来创建或替换现有的视图 `v_zx`。
2. 从 `student` 表中选择学生的学号、姓名和班级。
3. 从 `score` 表中选择学生的成绩,并通过 `sId` 将其与 `student` 表关联起来。
4. 从 `course` 表中选择课程编号和课程名称,并通过 `cId` 将其与 `score` 表关联起来。
这样,视图 `v_zx` 就会包含所需的全部信息。
相关问题
建立一个名称为v_学生成绩的视图用于查询每一位学生的学号、姓名、课程编号、成绩。
您可以使用以下 SQL 命令创建名称为 `v_学生成绩` 的视图,用于查询每一位学生的学号、姓名、课程编号和成绩:
```sql
CREATE VIEW v_学生成绩 AS
SELECT 学生表.学号, 学生表.姓名, 成绩表.课程编号, 成绩表.成绩
FROM 学生表, 成绩表
WHERE 学生表.学号 = 成绩表.学号;
```
这将创建一个视图,其中包含学生表和成绩表中的信息,同时按照学生表中的学号进行了连接。在视图中,每一行都包含了学生的学号、姓名、课程编号和成绩信息。现在,您可以使用以下命令查询视图中的信息:
```sql
SELECT *
FROM v_学生成绩;
```
这将返回视图中的所有信息,即每一位学生的学号、姓名、课程编号和成绩。
基于 student_info 表、curriculum 表和 grade 表建立一个名为v_stu_g的视图,视图 包据所有学生的学号、姓名、课程名称、分数。使用视图 v_stu_g查询学号为 0001的学生的课程平均分。
首先,我们需要创建一个名为 `v_stu_g` 的视图,这个视图将基于 `student_info`, `curriculum`, 和 `grade` 这三个表。假设 `student_info` 表包含学生信息(如学号 `student_id` 和姓名 `name`),`curriculum` 表包含了课程信息(如课程ID `course_id` 和课程名称 `course_name`),而 `grade` 表记录了每个学生的课程成绩(包括 `student_id`, `course_id`, 和 `score`)。视图的SQL创建语句可能如下:
```sql
CREATE VIEW v_stu_g AS
SELECT si.student_id, si.name, c.course_name, AVG(g.score) as avg_score
FROM student_info si
JOIN curriculum c ON si.student_id = c.student_id
JOIN grade g ON si.student_id = g.student_id
GROUP BY si.student_id, si.name, c.course_name
```
现在我们有了视图 `v_stu_g`,可以查询学号为 `0001` 的学生的所有课程的平均分数:
```sql
SELECT avg_score
FROM v_stu_g
WHERE student_id = '0001';
```
阅读全文