一、子查询:
eg1: SELECT ename FROM emp
WHERE sal >
(SELECT sal FROM emp
WHERE empno=7566);
eg2: SELECT a.ename, a.sal, a.deptno, b.salavg
FROM emp a, (SELECT deptno, avg(sal) salavg
FROM emp
GROUP BY deptno) b
WHERE a.deptno = b.deptno
AND a.sal > b.salavg;
二、使用 SQL*Plus创建友好的输出
使用&和&&代替变量,用&&定义的变量可以不再重复输入,可理解为常量,但当退出数据库再进入时,此“常量”失效
首次使用输出是可能没有输出结果,执行set serveroutput on;即可
当变量为字符串时,需用‘’引住
定义用户变量:
DEFINE: 创建 CHAR类型的用户变量。 有空格是用单引号引住
ACCEPT: 读取用户输入并把它存在一个变量里面。
accept dept prompt 'Provide the department name:' //接受dept变量的值
select * from dept where dname=upper('&dept');
定制SQL/Plus 环境变量:
set virify on|off :
ARRAYSIZE {20 | n} 每一批的行数
COLSEP {_ | text} 设定选择出的各列的间隔
FEEDBACK {6 | n |OFF | ON} 是否显示查询结果
HEADING {OFF | ON} 头信息
LINESIZE {80 | n} 每一行的长度
LONG {80 | n} 设置显示long,lob等型字段的长度
PAGESIZE {24 | n} 页面的尺寸
PAUSE {OFF | ON | text} 设置滚屏是否自动
ARRAYSIZE {20 | n} 每一批的行数
COLSEP {_ | text} 设定选择出的各列的间隔
FEEDBACK {6 | n |OFF | ON} 是否显示查询结果
HEADING {OFF | ON} 头信息
LINESIZE {80 | n} 每一行的长度
LONG {80 | n} 设置显示long,lob等型字段的长度
PAGESIZE {24 | n} 页面的尺寸
PAUSE {OFF | ON | text} 设置滚屏是否自动
ARRAYSIZE {20 | n} 每一批的行数
COLSEP {_ | text} 设定选择出的各列的间隔
FEEDBACK {6 | n |OFF | ON} 是否显示查询结果
HEADING {OFF | ON} 头信息
LINESIZE {80 | n} 每一行的长度
LONG {80 | n} 设置显示long,lob等型字段的长度
PAGESIZE {24 | n} 页面的尺寸
PAUSE {OFF | ON | text} 设置滚屏是否自动