《黑执事》双生子篇((SQL版)平行世界与幻想线)第1话 :SQL常用语句大全(超重要合集)(5)
SELECT * FROM emp WHERE NOT (sal>1500 AND comm IS NOT NULL) ;
基本工资不大于 1500,同时不可以领取奖金
从程序中可以发现,通过括号表示一组的条件。
2.1.7 范例:查询基本工资大于 1500,但是小于 3000 的全部雇员信息
· 满足两个:sal > 1500 ,sal < 3000
SELECT * FROM emp WHERE sal>1500 AND sal<3000 ;
在 SQL 语法中,提供了一个专门的指定范围查询的过滤语句:BETWEEN...AND....
语法格式:
字段 BETWEEN 最小值 AND 最大值
2.1.8 范例:使用 BETWEEN...AND 修改之前的操作
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;
实际上 BETWEEN ... AND 操作等价:sal>=1500 AND sal<=3000,包含了等于的功能。
2.1.9 范例:查询出在 1981 年雇佣的全部雇员信息
· 1981年1月1日 ~ 1981年12月31日之间雇佣的雇员· 日期表示的时候要加“ ' ”
SELECT * FROM empWHERE hiredate BETWEEN '1-1 月 -81' AND '31-12 月-81' ;
结论:BETWEEN ... AND 查询除了可以支持数字之外,也可以支持日期的查询· 随着深入的学习会发现,日期实际上也是以数字的形式表示出来。
2.1.10 范例:要求查询出姓名是 smith 的雇员信息· 此时告诉了要查询的名字,条件:ename='smith'
SELECT * FROM emp WHERE ename='smith' ;
执行以上的查询语句之后,并不会返回查询结果,再次查询数据库表的信息,发现 smith 是采用大写的形式表示的,在 Oracle 中是对大小写敏感的,所以此时在查询的时候必须以大写的形式进行条件的编写。代码修改如下:
SELECT * FROM emp WHERE ename='SMITH' ;
2.1.11 范例:要求查询出雇员编号是 7369、7499、7521 的雇员的具体信息· 如果此时按照之前的做法,则设置条件要使用 OR 连接:
|- empno=7369 OR empno=7499 OR empno=7521