1. 程式人生 > 其它 >SQL學習5.4- EXIST和IN 的使用場景

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需要給定要監督的具體列名)