数据库基础中更新操作的问题
将计算机科学系所有学生的课程清零updatescsetgrade=0where‘cs’=(selectsdeptfromstudentwherestudent.sno=s...
将计算机科学系所有学生的课程清零
update sc
set grade=0
where ‘cs’=
(
select sdept
from student
where student.sno=sc.sno
);
为什么不能写成:
update sc
set grade=0
where sdept=‘cs’; 展开
update sc
set grade=0
where ‘cs’=
(
select sdept
from student
where student.sno=sc.sno
);
为什么不能写成:
update sc
set grade=0
where sdept=‘cs’; 展开
1个回答
展开全部
sc表中没有sdept字段吧,必须用子查询过滤得到所有计算机科学系的学生,不过,上面那个sql语句似乎也有些问题。
追问
update sc
set grade=0
where sno=
(
select sno
from student
where student.sno=sc.sno and student.sdept=‘cs’
);
这样行么?感觉这样直观点
追答
一般应该这么写,如果要执行效率高的话,用exists替代in。原因是你的子查询得到的是结果集,不能用=来作比较。
update sc
set grade=0
where sno in
(
select sno
from student
where student.sno=sc.sno and student.sdept=‘cs’
)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
七鑫易维信息技术
2024-09-02 广告
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量500余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询