当前位置:数据库 > Oracle >>

Oracle DB对数据进行限制和排序

Oracle DB对数据进行限制和排序
 
• 对通过查询检索的行进行限制
• 对通过查询检索的行进行排序
• 在运行时使用&  替代变量对输出进行限制和排序
 
• 使用以下项对行进行限制:
– WHERE 子句
– 使用=、<=、BETWEEN、IN、LIKE 和NULL 条件的比较条件
– 使用AND 、OR和NOT 运算符的逻辑条件
• 表达式中运算符的优先级规则
• 使用ORDER BY 子句对行进行排序
• 替代变量
• DEFINE 和VERIFY 命令
 
对所选行进行限制
• 使用WHERE子句可以限制返回的行:
• WHERE子句在FROM 子句之后。
SELECT *|{[DISTINCT] column|expression [alias ],...}
FROM   table
[WHERE condition(s)];
 
使用WHERE 子句
SELECT employee_id, last_name, job_id, department_id
FROM   employees
WHERE  department_id = 90 ;
 
字符串和日期
• 字符串和日期值应放在单引号内。
• 字符值区分大小写,日期值区分格式。
• 默认的日期显示格式为DD-MON-RR。
SELECT last_name, job_id, department_id FROM   employees
WHERE  last_name = 'Whalen' ;
SELECT last_name  FROM   employees
WHERE  hire_date = '17-FEB-96' ;
 
比较运算符
 
 
 
 
使用比较运算符
SELECT last_name, salary FROM   employees
WHERE  salary <= 3000 ;
 
使用BETWEEN运算符的范围条件
使用BETWEEN运算符可基于值范围显示行:
SELECT last_name, salary FROM   employees
WHERE  salary BETWEEN 2500 AND 3500 ;
 
使用IN运算符的成员条件
使用IN运算符可测试列表中的值:
SELECT employee_id, last_name, salary, manager_id FROM   employees
WHERE  manager_id IN (100, 101, 201) ;
 
使用LIKE 运算符执行模式匹配
• 使用LIKE 运算符可执行通配符搜索,查找有效搜索字符串值。
• 搜索条件可包含文字字符或数字:
– % 表示零个或多个字符。
– _ 表示一个字符。
SELECT first_name FROM employees
WHERE first_name LIKE 'S%' ;
 
组合通配符字符
• 为执行模式匹配,可将两个通配符(%, _)  与文字字符组合使用:
• 可使用ESCAPE 标识符来搜索实际的% 和_ 符号。
SELECT last_name FROM   employees
WHERE  last_name LIKE '_o%' ;
 
使用NULL 条件
使用IS NULL运算符可测试空值。
SELECT last_name, manager_id FROM   employees
WHERE  manager_id IS NULL ;
 
使用逻辑运算符定义条件
 
 
 
 
使用AND 运算符
AND 要求两个条件都为真:
SELECT employee_id, last_name, job_id, salary FROM   employees
WHERE  salary >= 10000 AND    job_id LIKE '%MAN%' ;
 
使用OR运算符
OR要求其中一个条件为真:
SELECT employee_id, last_name, job_id, salary FROM   employees
WHERE  salary >= 10000 OR     job_id LIKE '%MAN%' ;
 
使用NOT 运算符
SELECT last_name, job_id FROM   employees WHERE  job_id 
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
 
优先级规则
 
 
 
可以使用括号更改优先级规则。
 
使用ORDER BY 子句
• 使用ORDER BY 子句可对检索行进行排序:
– ASC :升序,默认顺序
– DESC:降序
• ORDER BY 子句位于SELECT 语句的最后:
SELECT   last_name, job_id, department_id, hire_date FROM     employees
ORDER BY hire_date ;
 
 
排序
• 按降序排序:
SELECT   last_name, job_id, department_id, hire_date
FROM     employees
ORDER BY hire_date DESC ;
• 按列别名排序:
SELECT employee_id, last_name, salary*12 annsal
FROM   employees
ORDER BY annsal ;
 
• 使用列的数字位置进行排序:
SELECT   last_name, job_id, department_id, hire_date FROM     employees
ORDER BY 3;
 
• 按多个列进行排序:
SELECT last_name, department_id, salary FROM   employees
ORDER BY department_id, salary DESC;
替代变量
• 使用替代变量:
– 使用单与号 (&)  及双与号 (&&)  替代变量可临时存储值
• 可将替代变量作为以下项的补充:
– WHERE 条件
– ORDER BY 子句
– 列表达式
– 表名
– 整个SELECT 语句
 
使用单与号替代变量
使用以与号( & )  为前缀的变量可提示用户输入一个值:
SELECT employee_id, last_name, salary, department_id FROM   employees
WHERE  employee_id = &employee_num ;
 
 
使用替代变量指定字符值和日期值
对日期值和字符值使用单引号:
SELECT last_name, department_id, salary*12 FROM   employees
WHERE  job_id = '&job_title' ;
 
指定列名、表达式和文本
SELECT employee_id, last_name, job_id,&column_name FROM   employees
WHERE  &condition
ORDER BY &order_column ;
 
使用双与号替代变量
如果要重复使用变量值而不每次都显示提示,请使用双与号( &&):
 
SELECT   employee_id, last_name, job_id, &&column_name
FROM     employees
ORDER BY &column_name ;
 
使用DEFINE 命令
• 使用DEFINE 命令可创建变量并为其赋值。
• 使用UNDEFINE 命令可删除变量。
DEFINE employee_num = 200
SELECT employee_id, last_name, salary, department_id FROM   employees
WHERE  employee_id = &employee_num ;
 
UNDEFINE employee_num
 
使用VERIFY 命令
在SQL Developer 使用值替换替代变量前后,使用VERIFY 命令可切换替代变量的显示:
SET VERIFY ON
SELECT employee_id, last_name, salary
FROM   employees
WHERE  employee_id = &employee_num;
 
 
小结
• 使用WHERE子句来限制输出行:
– 使用比较条件
– 使用BETWEEN、IN、LIKE 和NULL 运算符
– 应用AND 、OR和NOT 逻辑运算符
• 使用ORDER BY 子句对输出行进行排序:
 
SELECT  *|{[DISTINCT] column|expression [alias ],...}
FROM     table
[WHERE   condition(s)]
[ORDER BY {column, expr, alias} [ASC|DESC]] ;
• 在运行时使用&  替代变量对输出进行限制和排序
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,