创建一个视图v_score,查询所有学生的每门课总成绩,并使用别名:姓名,课程名称,总成绩(=平时*0.4+期末*0.6),成绩保留两位小数。
时间: 2023-06-08 20:04:39 浏览: 80
好的,我会执行您的要求。以下是创建视图v_score的SQL语句和查询语句:
创建视图:
```
CREATE VIEW v_score AS
SELECT
s.name AS 姓名,
c.name AS 课程名称,
round(sum(sco.usual_score * 0.4 + sco.final_score * 0.6), 2) AS 总成绩
FROM student s
JOIN score sco ON s.id = sco.stu_id
JOIN course c ON c.id = sco.course_id
GROUP BY s.name, c.name;
```
查询语句:
```
SELECT *
FROM v_score;
```
请注意,这些SQL语句只是示例,实际上需要根据您的数据库结构进行适当的修改。
相关问题
在xscj中创建视图v_score, 要求包含所有成绩在80分以上的学生姓名,课程和成绩
你可以使用以下SQL语句在xscj数据库中创建名为v_score的视图:
```sql
CREATE VIEW v_score AS
SELECT s.name AS student_name, c.name AS course_name, sc.score
FROM student s
JOIN score sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id
WHERE sc.score >= 80;
```
这个视图将会返回所有成绩在80分以上的学生的姓名、课程和成绩信息。在查询中,你可以使用以下SQL语句来调用这个视图:
```sql
SELECT *
FROM v_score;
```
这个查询将会返回所有成绩在80分以上的学生的姓名、课程和成绩信息。注意,这个视图只是一个虚拟的表格,不会实际存储任何数据。每次查询这个视图时,MySQL都会重新计算符合条件的成绩信息。
新建一个视图computer_score,包含所有计算机学院学生的学号,姓名,学院名,课程名称和成绩
假设我们有以下表格:
学生表(students):
| 学号 | 姓名 | 学院ID |
| ---- | ---- | ------ |
| 001 | 张三 | 101 |
| 002 | 李四 | 102 |
| 003 | 王五 | 101 |
| 004 | 赵六 | 102 |
学院表(colleges):
| 学院ID | 学院名 |
| ------ | -------- |
| 101 | 计算机学院 |
| 102 | 电子工程学院 |
课程表(courses):
| 课程ID | 课程名称 |
| ------ | -------- |
| 001 | 数据结构 |
| 002 | 计算机网络 |
成绩表(scores):
| 学号 | 课程ID | 成绩 |
| ---- | ------ | ---- |
| 001 | 001 | 85 |
| 001 | 002 | 90 |
| 002 | 001 | 80 |
| 002 | 002 | 75 |
| 003 | 001 | 95 |
| 003 | 002 | 88 |
| 004 | 001 | 78 |
| 004 | 002 | 92 |
则可以使用如下 SQL 语句创建视图:
```sql
CREATE VIEW computer_score AS
SELECT s.学号, s.姓名, c.学院名, co.课程名称, sc.成绩
FROM students s
JOIN colleges c ON s.学院ID = c.学院ID
JOIN scores sc ON s.学号 = sc.学号
JOIN courses co ON sc.课程ID = co.课程ID
WHERE c.学院名 = '计算机学院'
```
该视图会返回所有计算机学院学生的学号、姓名、学院名、课程名称和成绩。