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的查询转换问题:


最新文章

  1. ABP理论学习之设置管理
  2. 全文检索学习历程目录结构(Lucene、ElasticSearch)
  3. chrome源码学习之:js与底层c++的通信
  4. python脚本工具-1 制作爬虫下载网页图片
  5. JavaScript数学函数的操作
  6. hadoop2对比hadoop1
  7. 屏幕坐标和世界坐标的转换+对象池技术(3D打地鼠小游戏)
  8. 顽强的的砂锅之——深究finally代码块与return语句的执行顺序!
  9. js添加下拉列表的模糊搜寻
  10. 这一次带你彻底了解Cookie
  11. getComputedStyle与currentStyle获取样式(style/class)
  12. 和spring cloud/boot 学习如何管理自己的组件
  13. Python之旅.第二章数据类型 3.19/3.20/3.21/3.22/3.23
  14. Linear Regression with Scikit Learn
  15. pandas 中处理数据的函数和方法
  16. Linux - 操作系统
  17. Mongodb - 二进制安装
  18. svn 被锁住 冲突 Can&#39;t revert without reverting children
  19. springmvc 孔浩
  20. 【Unity Shader】Shader基础

热门文章

  1. 微信小程序小红点未读消息如何实现?
  2. Android NDK学习记录(一)
  3. codeforces C. Diverse Permutation
  4. C语言中函数和指针的參数传递
  5. 【Linux】通过传入变量进行数学运算
  6. CSS3中伪类nth-child和nth-of-type区别
  7. Latex中设置字体颜色
  8. asp.net 查询本地excel 获取信息
  9. composer自动加载一个文件后必须执行命令composer dump-autoload
  10. apache设置头