sql更新查询学号为“0001 *的学生各科成绩总 和。
时间: 2023-05-29 07:06:57 浏览: 80
假设表名为“score”,字段包括“id”(学号)、“subject”(科目)、“score”(成绩),SQL语句如下:
```
SELECT id, SUM(score) AS total_score
FROM score
WHERE id LIKE '0001%'
GROUP BY id;
```
解释:
- `SELECT`语句选择“id”和各科成绩总和(用`SUM()`函数计算),并将总成绩命名为“total_score”。
- `FROM`语句指定表名为“score”。
- `WHERE`语句筛选出学号以“0001”开头的学生。
- `GROUP BY`语句按学号分组,以便计算各科成绩总和。
相关问题
(30分)解答下面的问题或书写SQL:1.1写出创建课程表(course)的语句。 1.2写sql给student表中插入一条数据,序号为“0000”,姓名为“王二”,年龄为“18”,性别为“MP”' 1.3写sql给course表添加字段teacherName,类型为varchar长度为20。 1.4课程名为“语文”的course表,更新字段teacherName内容为“张三”。 1.5写sql查询学号为“0001”的学生各科成绩总和。 1.6写sql查询出学号为“0001”的学生的姓名、课程名称、成绩。
1.1 创建课程表(course)的语句:
CREATE TABLE course (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
courseName VARCHAR(50) NOT NULL,
credit INT NOT NULL,
score FLOAT NOT NULL
);
1.2 给student表中插入一条数据,序号为“0000”,姓名为“王二”,年龄为“18”,性别为“MP”:
INSERT INTO student (id, name, age, gender)
VALUES ('0000', '王二', 18, 'MP');
1.3 给course表添加字段teacherName,类型为varchar长度为20:
ALTER TABLE course
ADD teacherName VARCHAR(20);
1.4 课程名为“语文”的course表,更新字段teacherName内容为“张三”:
UPDATE course
SET teacherName = '张三'
WHERE courseName = '语文';
1.5 查询学号为“0001”的学生各科成绩总和:
SELECT SUM(score) AS total_score
FROM grade
WHERE studentId = '0001';
1.6 查询出学号为“0001”的学生的姓名、课程名称、成绩:
SELECT s.name AS student_name, c.courseName, g.score
FROM student s
JOIN grade g ON s.id = g.studentId
JOIN course c ON g.courseId = c.id
WHERE s.id = '0001';
针对“teaching”库,利用流程控制语句,查询学号为201602001的学生的各科成绩,如果没有这个学生的选课信息,就显示“此学生无成绩”。使用SQL语句实现
假设学生信息和成绩信息分别存储在`students`和`grades`表中,其中`grades`表中包含了学生学号、科目和成绩三个字段。可以使用如下SQL语句查询学号为201602001的学生的各科成绩:
```sql
SELECT name, subject, score
FROM students JOIN grades ON students.id = grades.id
WHERE students.id = '201602001';
```
这条SQL语句首先将`students`表和`grades`表按照学生学号进行内连接(INNER JOIN),然后在连接后的表中筛选出学号为201602001的记录,最后输出学生姓名、科目和成绩三个字段。
如果没有学号为201602001的学生的选课信息,则不会有任何输出。可以在SQL语句中加入判断条件,使用如下SQL语句查询学号为201602001的学生的各科成绩,如果没有该学生的选课信息,则输出"此学生无成绩":
```sql
SELECT name, subject, score
FROM students JOIN grades ON students.id = grades.id
WHERE students.id = '201602001';
IF @@ROWCOUNT = 0
PRINT '此学生无成绩';
```
这条SQL语句和上面的语句类似,只不过在查询后加入了一个判断条件。`@@ROWCOUNT`是一个系统变量,用于返回最近一条查询语句所影响的行数。如果查询结果为空,则`@@ROWCOUNT`为0,此时输出"此学生无成绩"。注意,这条SQL语句可能需要在存储过程或批处理中使用,不能直接在SQL Server Management Studio中执行。
阅读全文