3.1限制查询索引的行

3.1.1WHERE子句

基于数字的条件
SELECT column
FROM table
WHERE column = 10000;


基于字符的条件
SELECT column
FROM table
WHERE column = '字符';


基于日期的条件
SELECT column 
FROM table 
WHERE column = 日期类型的列;

SELECT column 
FROM table 
WHERE column = '能隐式数据类型转换为日期类型的字符串';

3.1.2.比较运算符

1.等于和不等于

=      等于
<      小于
>      大于
<=     小于等于
>=     大于等于
<>     不等于
!=     不等于


2.使用BETWEEN运算符的范围比较
SELECT column
FROM table
WHERE column BETWEEN 100 AND 200;
等价于
WHERE column >= 100 AND column <= 200;


3.使用IN运算符设置比较
SELECT column
FROM table
WHERE column IN (100,200,300);


4.使用LIKE运算符的模式比较
包含2个通配符:百分号(%)和下划线(_)
%,零个或多个字符
_,一个字符

ESCAPE转义字符
SELECT column
FROM table
WHERE column like 'SA\_%' ESCAPE '\';
上例“\”后面的“_”转义为普通字符


5.使用IS NULL运算符的NULL比较
SELECT column
FROM table
WHERE column IS NULL;

3.1.3布尔运算符

1.AND运算符
真值表:    
       true  true  true
       false *     false
       null  null  null
       null  true  null



2.OR运算符
真值表:
       false false false
       true  *     true
       null  false null
       null  null  null


3.NOT运算符
真值表:
       not true    false
       not false   true
       not null    null

3.1.4优先规则

优先级   运算符符合                                运算
----------------------------------------------------------------------------------------
1       ()                                       圆括号
2       /、*                                     除法和乘法
3       +、-                                     加法和减法
4       ||                                       串联
5       =、<、>、<=、>=                           等于和不等于比较
6       [NOT] LIKE、IS [NOT] NULL、[NOT] IN       模式、NULL和集合比较
7       [NOT] BETWEEN                            范围比较
8       !=、<>                                   不等于
9       NOT                                      NOT逻辑条件
10      AND                                      AND逻辑条件
11      OR                                       OR逻辑条件

3.2排序查询所检索的行

ORDER BY子句

ORDER BY {col(s)|expr|numeric_pos} [ASC|DESC] [NULLS FIRST|LAST];
1.升序和降序排序
ASC:升序,默认选项。默认顺序为NULL LAST
DESC:降序。默认顺序为NULL FIRST
例子:
ORDER BY column DESC NULL LAST;

2.位置排序
将列在SELECT列表中出现的位置添加到ORDER BY子句中
例子:
ORDER BY 2;


3.混合排序
多个列排序
例子:
ORDER BY col1, col2 DESC, 3 DESC


4.使用表达式别名
SELECT 1+2 AS 别名
FROM table
ORDER BY 别名

3.3和符号(&)替换

3.3.1替换变量

1.单个和符号(&)替换
SELECT *
FROM table
WHERE column = '&变量名'    ---字符、日期(可隐式转换)
或者
WHERE column = &变量名      ---数字、字符(输入时要加单引号)


2.双和符号(&)替换
SELECT *
FROM table
WHERE column = '&&变量名'
    AND column2 = '&变量名'
当ORACLE服务器遇到&&替换变量时,会为该变量定义会话值,并在后续出现该变量时不再提示输入替换值。


3.替换列名
SELECT col1, col2, &&col
FROM table
WHERE column = 100O
ORDER BY &col
实际上SQL语句的任何元素都可以作为替换的对象


4.替换表达式和文本
例子1
SELECT &余下的声明部分
例子2
SELECT &select语句
FROM &from语句
WHERE &where语句
ORDER BY &order_by语句

3.3.2定义和验证

1.DEFINE和UNDEFINE命令
可以删除会话变量
UNDEFINE variable

检索SQL会话中当前定义的所有变量列表
DEFINE;

显示定义会话期间替换变量引用的变量的值
DEFINE variable = value;

SQL环境控制命令,是否保存会话变量或者给&添加特殊含义
SET DEFINE ON|OFF


2.VERIFY
控制提交的替换变量是否显示在屏幕上,以便验证替换的正确性。
SET VERIFY ON|OFF

 

书山有路勤为径,学海无涯苦作舟