数据库基础中更新操作的问题

将计算机科学系所有学生的课程清零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’;
展开
 我来答
用户名无法获取
推荐于2016-11-28 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:64
采纳率:0%
帮助的人:65.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 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量500余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分... 点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式