SQL学习5.4- EXIST和IN 的使用场景

EXIST:

1.当从表比主表大时,EXISTS查询的效率较高

2.exists是先从主查询中取得一条数据,再代入到子查询中,执行一次子查询,判断子查询是否能返回结果,主查询有多少条数据,子查询就要执行多少次

例如:

     SELECT *
     FROM employees
     WHERE NOT EXISTS (SELECT emp_no
                 FROM dept_emp
                 WHERE employees.emp_no = dept_emp.emp_no);

(exist不需要给定要监督的具体列)

IN:

1.当主表比从表大时,IN查询的效率较高

2. in是先执行子查询,得到一个结果集,将结果集代入外层谓词条件执行主查询,子查询只需要执行一次

例如:

   SELECT *
   FROM employees
   WHERE emp_no NOT IN (SELECT emp_no
                    FROM dept_emp);

(in需要给定要监督的具体列名)

上一篇:618活动盛夏来袭!!!


下一篇:大数据概述