设为首页 加入收藏

TOP

Oracle学习笔记3--条件查询(where)(二)
2014-11-24 02:35:17 来源: 作者: 【 】 浏览:12
Tags:Oracle 学习 笔记 3-- 条件 查询 where
82 CLARK MANAGER 7839 1981/6/9 2450.00 10 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 上面的查询结果和语句 select * from emp where sal>1500 and sal < 2500; 的查询结果是一样的。

IN的语法格式:

in(值1, 值2 , 值3 )

例:查询雇员编号为 7499 , 7782 , 7844 的雇员信息

SQL> select  *  from emp where empno in (7499 , 7782 , 7844) ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7844 TURNER     SALESMAN   7698 1981/9/8      1500.00      0.00     30
LIKE的使用要注意通配符的问题,有两种通配符:

% --任意多个字符的匹配

_--只匹配一个字符

例;查询名字中第二个字符是M的雇员信息。

SQL> select * from emp where ename like '_M%';
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
转译字符:上面中使用了 % , _ 作为了匹配字符,如果名字中含有下划线,要如何查询呢?

此时我们就要进行转译;

语法格式:

SELECT ename

FROM emp

WHERE ename LIKE ‘IT\_%‘ escape ‘\‘;

判空操作:

例:查询表中没有奖金的员工信息

SQL> select * from emp where comm is  null ;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
 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
 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
 
10 rows selected
如果在where条件语句中含有,字符或者是日期,要用单引号将其引起来。

格式如下:

SELECT ename, hiredate, sal

FROM emp

WHERE hiredate = '7-6月-1994'

SELECT ename, deptno

FROM emp

WHERE ename ='Whalen';

字符大小写敏感,日期的格式敏感,日期格式为 dd-m月-yy 。

排序:

使用 ORDER BY 字句对查询的结果进行排序。

语法格式:

select distinct * | (具体的列名)

from 表名

where 查询的条件

ORDER BY 排序的字段 1 , 字段2 , 字段3 (asc | desc ) ;

asc-> 表示的升序 ,desc –> 表示的是降序 ,默认的是升序排列。排序除了可以按照 表中的字段进行排序,还可以使用别名来排序。

例:查询emp表中所有的信息,对结果进行排序,首先对部门号进行排序,部门号一样则按工资降序进行排列,如果工资一样,则按员工号进行降序排列。
SQL> select * from emp order by deptno ,sal desc  ,empno desc;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7934 MILLER     CLERK      7782 1982/1/23     1300.00               10
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7566 JONES      MANAGER    7839 1981/4/2      2975.00               20
 7876 ADAMS      CLERK      7788 1987/5/23     1100.00               20
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
 7698 BLAKE      MANAGER    7839 1981/5/1      2850.00               30
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 7844 TURNER     SALESMAN   7698 1981/9/8      1500.00      0.00     30
 7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00   1400.00     30
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30
 7900 JAMES      CLERK      7698 1981/12/3      950.00               30
 
14 rows selected
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle中一些常用的命令 下一篇10GRAC节点2宕机通过修改listener..

评论

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