创建一张成绩数据表 grade,表中包含 3 个字段,分别为学号 student_id、课程号 course_id 和分数 score
时间: 2024-05-02 22:23:34 浏览: 21
好的,理解了您的要求。针对您的问题,我给您提供一个 SQL 语句来创建这张表:
```sql
CREATE TABLE grade (
student_id VARCHAR(10),
course_id VARCHAR(10),
score INT
);
```
希望这能满足您的需求。如果您还有其他问题,尽管问吧!
相关问题
在grade和student_info数据库中使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别
假设grade表中有以下字段:student_id(学生学号)、course_id(课程编号)、score(课程成绩);student_info表中有以下字段:student_id(学生学号)、name(学生姓名)、gender(学生性别)。
使用IN子查询可以使用以下SQL语句:
```
SELECT student_info.student_id, student_info.name, student_info.gender
FROM student_info
WHERE student_info.student_id IN (
SELECT grade.student_id
FROM grade
WHERE grade.course_id IN ('0002', '0005')
);
```
在这个SQL语句中,子查询 `SELECT grade.student_id FROM grade WHERE grade.course_id IN ('0002', '0005')` 返回修读了课程编号为0002或0005的学生学号,然后这些学号被用于主查询的 `WHERE` 子句中的 `IN` 操作符中,来过滤出对应学号的学生信息。
基于 student_info 表、curriculum 表和 grade 表,建立一个名为 v_stu_g 的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g 查询学号为 0001 的学生的课程平均分
首先,我们需要连接三个表,然后选取学号、姓名、课程名称和分数四个字段,命名为 v_stu_g 视图:
```
CREATE VIEW v_stu_g AS
SELECT student_info.student_id, student_info.name, curriculum.course_name, grade.score
FROM student_info
JOIN grade ON student_info.student_id = grade.student_id
JOIN curriculum ON grade.course_id = curriculum.course_id;
```
接下来,我们可以使用下面的 SQL 查询语句来查询学号为 0001 的学生的课程平均分:
```
SELECT AVG(score)
FROM v_stu_g
WHERE student_id = '0001';
```
这条 SQL 查询语句会从 v_stu_g 视图中选取学号为 0001 的学生的所有分数,然后计算平均分。