首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

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

2013-10-22 
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_idFROM   employeesWHERE  department_id = 90 ;
字符串和日期? 字符串和日期值应放在单引号内。? 字符值区分大小写,日期值区分格式。? 默认的日期显示格式为DD-MON-RR。SELECT last_name, job_id, department_id FROM   employeesWHERE  last_name = 'Whalen' ;SELECT last_name  FROM   employeesWHERE  hire_date = '17-FEB-96' ;
比较运算符Oracle DB 对数据进展限制和排序

使用比较运算符SELECT last_name, salary FROM   employeesWHERE  salary <= 3000 ;
使用BETWEEN运算符的范围条件使用BETWEEN运算符可基于值范围显示行:SELECT last_name, salary FROM   employeesWHERE  salary BETWEEN 2500 AND 3500 ;
使用IN运算符的成员条件使用IN运算符可测试列表中的值:SELECT employee_id, last_name, salary, manager_id FROM   employeesWHERE  manager_id IN (100, 101, 201) ;
使用LIKE 运算符执行模式匹配? 使用LIKE 运算符可执行通配符搜索,查找有效搜索字符串值。? 搜索条件可包含文字字符或数字:– % 表示零个或多个字符。– _ 表示一个字符。SELECT first_name FROM employeesWHERE first_name LIKE 'S%' ;
组合通配符字符? 为执行模式匹配,可将两个通配符(%, _)  与文字字符组合使用:? 可使用ESCAPE 标识符来搜索实际的% 和_ 符号。SELECT last_name FROM   employeesWHERE  last_name LIKE '_o%' ;
使用NULL 条件使用IS NULL运算符可测试空值。SELECT last_name, manager_id FROM   employeesWHERE  manager_id IS NULL ;
使用逻辑运算符定义条件Oracle DB 对数据进展限制和排序
使用AND 运算符AND 要求两个条件都为真:SELECT employee_id, last_name, job_id, salary FROM   employeesWHERE  salary >= 10000 AND    job_id LIKE '%MAN%' ;
使用OR运算符OR要求其中一个条件为真:SELECT employee_id, last_name, job_id, salary FROM   employeesWHERE  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') ;
优先级规则Oracle DB 对数据进展限制和排序可以使用括号更改优先级规则。
使用ORDER BY 子句? 使用ORDER BY 子句可对检索行进行排序:– ASC :升序,默认顺序– DESC:降序? ORDER BY 子句位于SELECT 语句的最后:SELECT   last_name, job_id, department_id, hire_date FROM     employeesORDER BY hire_date ;

排序? 按降序排序:SELECT   last_name, job_id, department_id, hire_dateFROM     employeesORDER BY hire_date DESC ;? 按列别名排序:SELECT employee_id, last_name, salary*12 annsalFROM   employeesORDER BY annsal ;
? 使用列的数字位置进行排序:SELECT   last_name, job_id, department_id, hire_date FROM     employeesORDER BY 3;
? 按多个列进行排序:SELECT last_name, department_id, salary FROM   employeesORDER BY department_id, salary DESC;替代变量? 使用替代变量:– 使用单与号 (&)  及双与号 (&&)  替代变量可临时存储值? 可将替代变量作为以下项的补充:– WHERE 条件– ORDER BY 子句– 列表达式– 表名– 整个SELECT 语句
使用单与号替代变量使用以与号( & )  为前缀的变量可提示用户输入一个值:SELECT employee_id, last_name, salary, department_id FROM   employeesWHERE  employee_id = &employee_num ;

使用替代变量指定字符值和日期值对日期值和字符值使用单引号:SELECT last_name, department_id, salary*12 FROM   employeesWHERE  job_id = '&job_title' ;
指定列名、表达式和文本SELECT employee_id, last_name, job_id,&column_name FROM   employeesWHERE  &conditionORDER BY &order_column ;
使用双与号替代变量如果要重复使用变量值而不每次都显示提示,请使用双与号( &&):
SELECT   employee_id, last_name, job_id, &&column_nameFROM     employeesORDER BY &column_name ;
使用DEFINE 命令? 使用DEFINE 命令可创建变量并为其赋值。? 使用UNDEFINE 命令可删除变量。DEFINE employee_num = 200SELECT employee_id, last_name, salary, department_id FROM   employeesWHERE  employee_id = &employee_num ;
UNDEFINE employee_num
使用VERIFY 命令在SQL Developer 使用值替换替代变量前后,使用VERIFY 命令可切换替代变量的显示:SET VERIFY ONSELECT employee_id, last_name, salaryFROM   employeesWHERE  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]] ;? 在运行时使用&  替代变量对输出进行限制和排序

热点排行