条件查询
SELECT *|{[DISTINCT] column|expression [alias ],...}
FROM table
[WHERE condition(s) ];
Condition(s) 要使用到比较运算符常用的比较运算符如下 :
操作符 |
含义 |
= |
等于 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
<> |
不等于 等效于 != |
其它操作 |
|
And 逻辑运算 逻辑与 |
|
Or 逻辑运算 逻辑或 |
|
Not 逻辑运算 逻辑否 |
|
Between 起始值 and 结束值 : 使用 BETWEEN 运算来显示在一个区间内的值 包含 ( 起始结束值 ) |
|
In: 使用 IN 运算显示列表中的值。 In(,,,) 相当于一个集合 , 只要出现集合中匹配的就显示 |
|
Like : l 使用 LIKE 运算选择类似的值 l 选择条件可以包含字符或数字 : • % 代表零个或多个字符 ( 任意个字符 ) 。 • _ 代表一个字符。 |
|
Escape : 回避特殊符号的:使用转义符。例如:将 [%] 转为 [\%] 、 [_] 转为 [\_] ,然后再加上 [ESCAPE ‘\’] 即可 |
|
Null: 使用 IS (NOT) NULL 判断空值。 |
// 查询部门号为 10 的员工信息 部门为整数类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10;
// 查询职位号为 MANAGER 的员工信息 岗位的类型为字符类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';
// 查询部门号为 10 并且员工的职位为 MANAGER 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;
注意:
l 字符和日期要包含在单引号中 。
l 字符大小写敏感,日期格式敏感 。
l 默认的日期格式是 DD-MON-RR 。
// 查询部门号大于 10 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;
// 查询薪水大于等于 3000 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;
// 查询薪水不等于 3000 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;
// 查询薪水大于 2000 并且小于 3000 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;
// 查询薪水大于等于 2000 并且小于等于 3000 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;
// 等效于
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;
// 查询部门号位 10 , 20 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);
// 注意:相当于如下操作:
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;
// 查询员工名称以 S 开头的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';
// 查询员工名称以 S 结尾的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';
// 查询员工名称第三个字符为 N 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';
// 查询员工名称中含有 N 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';
// 查询员工名称中倒数第二个字符为 % 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%_'escape'\';
// 查询员工名称总含有 % 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%%'escape'\';
// 查询奖金为 null 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;
// 查询奖金非 null 的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;
优先级表格:
优先级 |
|
1 |
算术运算 |
2 |
连接符 |
3 |
比较符 |
4 |
Is not null like not in |
5 |
Not between |
6 |
not |
7 |
and |
8 |
Or |
备注:可以采用括号改变优先级 |
关系数据库 - à 层次关系 à 网状的关系 - à 关系数据库 - à 对象关系。