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
书山有路勤为径,学海无涯苦作舟