文档详情

DML语言数据管理和检索.ppt

发布:2016-10-30约8.53万字共111页下载文档
文本预览下载声明
* 多列参与排序 您可以对查询按照多个列的顺序进行排列,排序的极限就是表所给出字段的数量。 在ORDER BY子句中指定多个列时,需要在列名和列名之间用分号隔开,如果您需要颠倒某个列的顺序,可以在相应的列名后使用关键字DESC。您同样可以用没有在SELECT列表中出现的列进行排序。 举例 显示所有雇员的姓名和月薪,先按照部门编号然后按照月薪降序排列。 SQL SELECT ename, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; * 交互式报表 到目前为止所有的例子都没有使用任何交互方式。在一个已经完成的应用程序中,用户可以触发报表,并且报表会在没有多少提示的方式下运行,因为操作数据的范围已经被SQL*Plus脚本文件中固定的WHERE子句所预先确定。使用SQL*Plus,您可以创建需要用户提供参数来限制返回数据范围的,创建交互式报表,可以采用在命令文件或单一的SQL语句中嵌入替代变量的方式实现。这种变量可以看成一个暂时存储数据的容器。 * 替代变量 在SQL*Plus,您可以使用替代变量临时存储数据,您也可以在SQL*Plus中使用ACCEPT 或 DEFINE命令预先定义变量。ACCEPT读取用户输入的一行并保存成变量,DEFINE创建变量并申明一个值 交互作用 交互作用不仅仅局限于和WHERE子句进行交互。相同的原理可以实现其它目标,例如: 动态的改变标题和脚注 从文件而不是人为输入获得输入的值 在SQL语句之间传递值 在用户输入上,SQL*Plus并不提供有效性验证(除了数据类型),所以应该确保系统提示符是简单而明确的。 注释 替代变量可以应用于 SQL 和 SQL*Plus命令的任何位置,除了作为命令提示符状态下输入的第一个单词。 * 替代变量 当运行一个报表时,用户希望能动态的限制返回的数据。 SQL*Plus通过用户变量的方式提供了这种灵活性 。在SQL语句中使用来识别每一个变量。您不需要定义变量的值 上面的例子,创建了一个在运行时刻提示用户输入用户编号的SQL语句,该语句可以根据输入的编号显示雇员的编号、姓名、工资和部门编号。 使用替代变量,如果该变量没有有赋值每次执行到便会提示用户要求为该变量输入值。 SELECT empno, ename, sal, deptno FROM emp WHERE empno = employee_num / 输入 employee_num 的值: 7369 原值 3: WHERE empno = employee_num 新值 3: WHERE empno = 7369 EMPNO ENAME SAL DEPTNO ---------- ---------- ---------- ---------- 7369 SMITH 800 20 SET VERIFY OFF SELECT empno, ename, sal, deptno FROM emp WHERE empno = employee_num; 输入 employee_num 的值: 7369 EMPNO ENAME SAL DEPTNO ---------- ---------- ---------- ---------- 7369 SMITH 800 20 * 命令SET VERIFY 命令 为了确认SQL语句是否改变,可以使用 SQL*Plus的 SET VERIFY命令。 设置 SET VERIFY ON 强制 SQL*Plus输出在其用值替换替代变量前后的命令文本。 上面的例子显示显示了旧的及新的empno列的值。 SELECT empno, ename, sal, deptno FROM emp WHERE empno = employee_num; 输入 employee_num 的值: 7369 EMPNO ENAME SAL DEPTNO ---------- ---------- ---------- ---------- 7369 SMITH 800 20 * 指定字符和日期值的替代变量 在WHERE子句中,日期和字符值必须用单引号扩起来,这个规则同样适用于替代变量。 为了避免在运行时输入引号,事先在SQL语句中将替代变量用单引号扩起来。 上面显示的查询是为了
显示全部
相似文档