減少對錶的查詢

LuiseDalian發表於2014-01-15

在含有子查詢的SQL語句中,尤其要減少對錶的查詢。

點選(此處)摺疊或開啟

  1. --檢視職位和7900號員工相同, 部門和7844號員工相同的員工的編號、姓名、職位、薪水、部門編號
  2. --表掃描的次數為3次(不建議)
  3. SELECT empno, ename, job, sal, deptno FROM emp
  4. WHERE job = (SELECT job FROM emp WHERE empno = 7900)
  5. AND deptno = (SELECT deptno FROM emp WHERE empno = 7900);


點選(此處)摺疊或開啟

  1. --表掃描的次數降為2次(建議)
  2. SELECT empno, ename, job, sal, deptno FROM emp
  3. WHERE (job, deptno) = (SELECT job, deptno FROM emp WHERE empno = 7900);


點選(此處)摺疊或開啟
  1. --修改emp1中員工號為7788的員工的職位和工資與員工號為7369的員工一致
  2. --低效的寫法(掃描emp1表3次)
  3. UPDATE emp1 SET job = (SELECT job FROM emp1 WHERE empno = 7369),
  4.                 sal = (SELECT sal FROM emp1 WHERE empno = 7369)
  5. WHERE empno = 7788;




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1070725/,如需轉載,請註明出處,否則將追究法律責任。

相關文章