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