SQL问题:我想知道在题中什么时候使用in,什么时候用exists,他俩有什么区别

SQL问题:我想知道在题中什么时候使用in,什么时候用exists,他俩有什么区别
例:把低于平均分的女生的成绩提高5%
UPDATE SC
SET score=score*1.05
WHERE score
ruawpf4 1年前 已收到1个回答 举报

630163 幼苗

共回答了18个问题采纳率:94.4% 举报

= 右边为单值
in 右边为多值(或单值)

1年前 追问

5

ruawpf4 举报

如果把in改成exists,结果一样吗?

举报 630163

EXISTS 是判断是否存在,和in类似,但效率要比in高。例如 : SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB') SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB') 所以,in 直接改成 exists不可以。 UPDATE SC t1 SET score=score*1.05 WHERE score<(SELECT AVG(score) FROM SC) AND EXISTS (SELECT Sno FROM S t2 WHERE SEX='女' and t1.sno = t2.sno)

ruawpf4 举报

我现在不知道在题中什么时候用in什么时候用exists,有没有什么关键字之类的可以帮助自己知道该用谁呢,就像看见并且就用and之类的

举报 630163

没有这个区别的吧 主要看效率。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 1.995 s. - webmaster@yulucn.com