SQL实战:如何将选修'数据'课程学生的成绩置为空值

问题描述:

在设计、创建的'学生、课程、选课'数据库中:

  • S 学生表( 学号Sno, 姓名Sname, 性别Sex, 年龄Age)
  • C 课程信息表(课号Cno, 课程名称Cname, 授课教师Teacher)
  • SC 选课表(学号Sno, 课号Cno, 成绩Grade)

请从中检索出选修了课程名含'数据'的同学,将他们的选课成绩置为空值。

SQL构造思路:

要检索选修了课程名含有'数据'的同学,然后将他们的选课成绩置为空值,我们可以使用一个UPDATE语句结合子查询来实现。

SQL语句:

UPDATE SC
SET Grade = NULL
WHERE Sno IN (
  SELECT Sno
  FROM S
  WHERE Sno IN (
    SELECT Sno
    FROM SC
    WHERE Cno IN (
      SELECT Cno
      FROM C
      WHERE Cname LIKE '%数据%'
    )
  )
);

在这个SQL语句中,我们首先使用子查询选取了选修了课程名含有'数据'的同学的学号(Sno),然后使用UPDATE语句将这些同学的选课成绩(Grade)置为空值。

运行结果:

执行这个SQL语句后,选修了课程名含有'数据'的同学的选课成绩将会被置为空值(NULL)。

SQL实战:如何将选修“数据”课程学生的成绩置为空值

原文地址: http://www.cveoy.top/t/topic/buis 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录