设为首页 加入收藏

TOP

Oracle学习笔记3--条件查询(where)(一)
2014-11-24 02:35:17 来源: 作者: 【 】 浏览:11
Tags:Oracle 学习 笔记 3-- 条件 查询 where

之前的查询,结果是表中所有的记录。如果想要只是显示满足一定条件的记录,就要使用条件查询或者称为限定查询。

条件查询的基本语法:

SELECT * |(具体的列名,如 ename ,empno)

FROM table(表名)

WHERE 限定条件

小记:where字句要紧跟在from字句之后。

例:查询emp表中,工资大于2000的员工的所有信息

SQL> select * from  emp  where sal  >  2000 ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7566 JONES      MANAGER    7839 1981/4/2      2975.00               20
 7698 BLAKE      MANAGER    7839 1981/5/1      2850.00               30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 
6 rows selected

在上例中,使用了 > ,在操作条件中,还可以使用 >= ,= ,<= ,<,等操作符号。关于不等号,特别说明一下,使用 != 和<>都是可以的。

例:查询员工号不是7566的雇员信息。

SQL> select * from emp where empno != 7566 ;
SQL> select * from emp where empno <> 7566 ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 1981/5/1      2850.00               30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7844 TURNER     SALESMAN   7698 1981/9/8      1500.00      0.00     30
 7876 ADAMS      CLERK      7788 1987/5/23     1100.00               20
 7900 JAMES      CLERK      7698 1981/12/3      950.00               30
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 7934 MILLER     CLERK      7782 1982/1/23     1300.00               10
 
13 rows selected
上面两种方式的查询结果都是一样的。

逻辑运算:

1)AND ,逻辑并;

2)OR , 逻辑或;

3)NOT,逻辑否;

例:查询员工部门号为10且工资大于2000的雇员信息。

SQL> select * from emp  where deptno = 10 and sal > 2000 ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
如果要同时满足两个甚至是多个条件,使用and 连接条件字句。

例:查询员工部门号为10 或者员工工资大于2000 的雇员信息。

SQL> select * from emp  where deptno = 10 or sal > 2000 ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7566 JONES      MANAGER    7839 1981/4/2      2975.00               20
 7698 BLAKE      MANAGER    7839 1981/5/1      2850.00               30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 7934 MILLER     CLERK      7782 1982/1/23     1300.00               10
 
7 rows selected
两个条件之间是一种或者的关系,我们使用逻辑或 OR ,来连接两个条件。

例:查询员工工资大于2000,同时可以领取奖金的员工信息。上面的查询结果中,comm是空的,表示查询结果是null。

SQL> select * from emp where sal > 1000 and comm is not null;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00   1400.00     30
 7844 TURNER     SALESMAN   7698 1981/9/8      1500.00      0.00     30
上面查询的是奖金不为空,所以使用了not ,如果要查询comm为空的雇员信息,则条件改为 comm is null 。

其他比较运算符:

BETWEEN ... ON ...在两个值之间,包括边界

IN(set)值为列表set中的一个

LIKE模糊查询

IS NULL查询空值

between on 语法格式:

字段 between 小值 on 大值

例:查询工资在1500 到 2500 的雇员信息

SQL> select * from emp where sal between 1500 and 2500 ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 77
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle中一些常用的命令 下一篇10GRAC节点2宕机通过修改listener..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: