SQL语句创建成绩表包含学号,课程号和成绩
时间: 2024-01-17 12:06:17 浏览: 165
好的,以下是 SQL 语句创建成绩表包含学号、课程号和成绩的示例:
```
CREATE TABLE score (
student_id INT NOT NULL,
course_id INT NOT NULL,
score DECIMAL(5, 2),
PRIMARY KEY (student_id, course_id)
);
```
这个 SQL 语句创建了一个名为 `score` 的表,包含了三个字段:`student_id`(学号)、`course_id`(课程号)和 `score`(成绩)。其中,`student_id` 和 `course_id` 字段是整数类型,且都不能为空;`score` 字段是一个带有两个小数位的十进制数。最后,这个 SQL 语句还指定了 `student_id` 和 `course_id` 两个字段作为表的主键,以确保每条记录都是唯一的。
相关问题
SQL语句 使用连接查询 找出每个学生超过或等于他选修课程平均成绩的课程号 没有平均成绩表 有成绩表包含学号和成绩
在SQL中,如果你没有单独的平均成绩表,你需要通过子查询来计算每个学生的每门课程的平均成绩,并结合主表(成绩表)来找出满足条件的结果。假设你的成绩表名为`scores`,字段包括`student_id`(学号) 和 `course_id`(课程号),你可以尝试以下的SQL语句:
```sql
SELECT s.course_id
FROM scores AS s
JOIN (
SELECT student_id, course_id, AVG(score) AS avg_score
FROM scores
GROUP BY student_id, course_id
) AS avg_scores
ON s.student_id = avg_scores.student_id AND s.course_id = avg_scores.course_id
WHERE s.score >= avg_scores.avg_score;
```
这个查询首先对`scores`表按学生和课程分组并计算平均成绩,然后将这些平均成绩与原始成绩表连接,筛选出成绩大于等于平均成绩的学生的课程。
sql语句按姓名删除成绩表中某位同学的信息嵌套查询 成绩表有成绩学号课程号 学生表有姓名
假设成绩表的表名为score,学生表的表名为student,要删除学生表中姓名为“张三”的同学在成绩表中的所有记录,可以使用如下的SQL语句:
```
DELETE FROM score WHERE student_id IN (SELECT student_id FROM student WHERE name = '张三');
```
其中,嵌套查询的部分 `(SELECT student_id FROM student WHERE name = '张三')` 返回了姓名为“张三”的同学在学生表中的学号,然后在成绩表中删除该学号对应的所有记录。
阅读全文