创建一个合并选修表、课程表、学生表的试图,然后根据此视图查询每个学生的所得的总学分,列出学生姓名、学号与总学分。将里面的英文替换为中文
时间: 2023-06-25 16:05:44 浏览: 157
创建一个合并选修表、课程表、学生表的视图,然后根据此视图查询每个学生的所得的总学分,列出学生姓名、学号与总学分。将里面的英文替换为中文。
```
CREATE VIEW 视图名称 AS
SELECT 学生表.学生姓名, 学生表.学号, SUM(课程表.学分) AS 总学分
FROM 学生表
INNER JOIN 选修表 ON 学生表.学号 = 选修表.学号
INNER JOIN 课程表 ON 选修表.课程编号 = 课程表.课程编号
GROUP BY 学生表.学生姓名, 学生表.学号;
SELECT 学生姓名, 学号, 总学分 FROM 视图名称;
```
注:这里的视图名称、学生表、选修表、课程表、学生姓名、学号、课程编号、学分等都需要根据具体情况进行替换。
相关问题
创建一个合并选修表、课程表、学生表的试图,然后根据此视图查询每个学生的所得的总学分,列出学生姓名、学号与总学分。
假设有以下三个表:
选修表(enrollment):
| student_id | course_id |
|------------|-----------|
| 1 | 101 |
| 1 | 102 |
| 2 | 101 |
| 3 | 103 |
| 3 | 104 |
课程表(course):
| course_id | course_name | credits |
|-----------|-------------|---------|
| 101 | Math | 3 |
| 102 | English | 4 |
| 103 | Science | 2 |
| 104 | History | 3 |
学生表(student):
| student_id | student_name |
|------------|--------------|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
可以创建以下合并视图:
```sql
CREATE VIEW student_enrollment AS
SELECT e.student_id, c.course_name, c.credits
FROM enrollment e
JOIN course c ON e.course_id = c.course_id;
```
然后可以使用以下查询来获取每个学生的总学分:
```sql
SELECT student_name, student_id, SUM(credits) as total_credits
FROM student_enrollment se
JOIN student s ON se.student_id = s.student_id
GROUP BY student_name, student_id;
```
结果如下:
| student_name | student_id | total_credits |
|--------------|------------|---------------|
| Alice | 1 | 7 |
| Bob | 2 | 3 |
| Charlie | 3 | 5 |
已知一个数据库有学生表,课程表,选修表,创建软件学院的学生视图(SW_S)
CREATE VIEW SW_S AS
SELECT s.s_id, s.s_name, s.s_age, s.s_gender, s.s_major, c.c_name, c.c_teacher
FROM student AS s
INNER JOIN elective AS e ON s.s_id = e.s_id
INNER JOIN course AS c ON e.c_id = c.c_id
WHERE s.s_major = '软件学院';
阅读全文