目录
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
IN 指的是根据一个指定的范围进行数据查询
1.查询出员工编号是 7369、7566、7788、9999 的员工信息
利用前面学的知识,得出:
SQL> set linesize 250
SQL> select *
2 from emp
3 where empno = 7369 or empno = 7566 or empno = 7788 or empno = 9999;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7566 JONES MANAGER 7839 02-4月 -81 2975 20
以上的代码进行了四次判断,从效率上来讲很低,所以面对指定数据范围的时候可以使用 IN 操作。
利用 IN 完成操作的代码如下
这个代码不仅短而且效率还高,这就是在使用过程中的首选。
在使用 IN 操作的时候也可以使用 NOT IN,这个表示的是不在范围之中?
SQL> select *
2 from emp
3 where empno not in(7369,7566,7788,9999);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
8989 HELLO
已选择 11 行。
但是,在使用 NOT IN 的时候,如果查找的数据范围之中包含有 nul 值,那么不会有任何的查询结果返回,而 IN 操作无此限制
3.观察 iN 操作中出现 null
此时,虽然 IN 操作中出现 null,但是仍然有结果显示
4.观察 NOT iN 中出现 null
在 NOT IN 中出现 nul 的时候,没有结果显示出来