首页 > 其他 > 详细

WHERE字句

时间:2014-03-04 09:31:27      阅读:621      评论:0      收藏:0      [点我收藏+]
structured query language(非过程性的结构查询语言)

主要内容:
数据库怎么限制里面的数据;
数据库怎么排列里面的数据。
WHERE子句:

--WHERE字句起到的是对数据库查询结果集的限制作用
----[WHERE condition(s)]
------[]代表可选,意思是WHERE字句是可以没有的
------(s)也就是说条件是可以多个的

----WHERE条件的三个要素
------列名
------比较条件
--------不等于的三种形式!=、<>、^=

SQL> select count(*) from emp;

  COUNT(*)
----------
        14

SQL> select count(*) from emp where empno^=7788;

  COUNT(*)
----------
        13

------between and 是有边界的,意思是包括边界值的

------常数、值列表
--------常数的特征1、字符串和日期必须用引号括起来;2、字符串是大小写敏感

------like走索引的问题:like ‘%XX‘是不走索引的,基于索引的原理
SQL> select * from emp where empno = ‘7788‘;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 09-2-82           3000                    20


执行计划
----------------------------------------------------------
Plan hash value: 4024650034

--------------------------------------------------------------------------------------
| Id  | Operation                   | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |        |     1 |    38 |     1   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    38 |     1   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN         | EMP_PK |     1 |       |     0   (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("EMPNO"=7788)


统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          2  consistent gets
          0  physical reads
          0  redo size
        772  bytes sent via SQL*Net to client
        405  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
有索引,且走索引
SQL> select * from emp where empno like ‘%88‘;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 09-2-82           3000                    20


执行计划
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    38 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| EMP  |     1 |    38 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(TO_CHAR("EMPNO") LIKE ‘%88‘)


统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          8  consistent gets
          0  physical reads
          0  redo size
        864  bytes sent via SQL*Net to client
        416  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
不能走索引,走全表扫描

--------except 逃避符 一般用来处理 字符串里面的特色字符 例如 ‘\‘
------null的特征之一就是不能用比较等于或者不等于
SQL> select * from emp where comm != null;

未选定行

SQL> select * from emp where comm = null;

未选定行
--逻辑运算
----AND
AND TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL
----OR
OR TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL
----NLS_UPPER:转换成大写,不同语言都有用
----UPPER:不能处理特殊语言
--IN的查询转换问题:






WHERE字句,布布扣,bubuko.com

WHERE字句

原文:http://www.cnblogs.com/jiaoweixue/p/3578801.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!