SQL*PLUS是一个工具(环境),我们可以用它来输入SQL语句。与SQL语句不同的是,SQL*PLUS命令是可以缩写的。下面就简单的介绍一些常用的SQL*PLUS命令。
SQL 与SQL*Plus的交互列出表结构的命令
DESC[RIBE] [表名]
DESC emp;
2.编辑SQL缓冲区中的SQL语句
——该命令是将显示屏的显示输出设置为n个字符宽,80个字符为此命令的默认显示宽度。
SET line100
——该命令是将显示页行数。
set pagesize 30000
——L (list)命令显示SQL缓存区中的输入的内容,还可以看出SQL语句当前行(n * 标识为当前行)
—— n text命令修改SQL语句中出错的部分,n 为在SQL缓存区中的SQL语句的行号,text 为代替出错部分的SQL语句。
eg:要求修改第2行中from dept ,修改为from emp。
-- 第1步 select 语句中 from dept表错误
select empno,ename,job,sal
from dept
where sal >= 3000
order by job, sal DESC;
--第2步 使用 L命令查看SQL缓存区刚刚输入的SQL语句
--第3步 使用 n text命令修改SQL语句中出错的行数部分
SQL> 2 from emp
--第4步 使用 L命令检查出错的SQL是否已修改
3.在SQL*Plus中执行SQL语句
——运行SQL语句,显示SQL语句输出结果。
—— 可以使用 n命令 设置当前行命令
—— 可以使用 A命令 编辑命令 a,{新增字段}
eg::要求在查询emp表中,在查询结果ename 后添加 job,sal字段。
select empno,ename from emp;
--第1步 使用 L命令查看SQL缓存区刚刚输入的SQL语句,可知当前行为第1行
2* from emp
--第2步 使用 n命令,输入1,先把第1行设置为当前行
1* select empno,ename
--第3步 使用A命令,编辑当前行命令,在查询结果ename 后添加 job,sal字段
SQL> a,job,sal
——该命令是在当前行中用“新的正文”替代“原文”
eg:要求修改第2行中from dept ,修改为from emp。
--第1步 使用 L命令查看SQL缓存区当前行
--第2步 使用 n命令修改当前行,将第2行中from dept 设置为当前行
--第3步 使用 C命令 修改第2行中from dept ,修改为from emp
SQL> C /dept/emp
--第4步 使用 L命令检查是否SQL语句已修改
eg:要求输出的结果只按工资(sal)排序。
--第1步 使用 L命令查看SQL缓存区当前行,发现 4* order by job, sa是当前行,不要再重新指定当前行
--第2步 使用 C命令修改当前行
SQL> C /job,/
--第3步 使用 L命令检查是否SQL语句已修改
--第4步 使用 /命令运行SQL语句
——该命令是删除第n行SQL语句
SQL> DEL 4; //删除第4行SQL语句
DEL m n命令
——该命令是删除从m行 到 n行SQL语句
SQL> DEL 3 4; // 删除第3行到 第4行
SQL> i where sal >= 3000 // 添加一行SQL语句
4.将SQL语句存入文件中和将SQL语句追加到文件中
SQL> L
1 select empno,ename,job,sal
2 from emp
3* where sal >= 3000
SQL> save F:testA
已创建 file F:testA.sql
注意:在使用 SAVE 命令 之前,要先创建 F:test文件夹。
5.执行所存的文件
SQL> @F:testB.sql
6.将文件中的命令装入内存缓冲区以进行编辑
SQL> get F:testB.SQL
1 select *
2* from dept;
3
在SQL*PLUS中,使用 ed (it) 命令直接编辑客户端上文件
SQL> SPOOL F:testC // 第 1步 先指导存入文件路径
SQL> select empno,ename,job,sal
2 from emp
3 where sal >= 3000
4 order by job, sal DESC; // 输入要存放的内容
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7788 SCOTT ANALYST 3000
7902 FORD ANALYST 3000
7839 KING PRESIDENT 5000
SQL> spool off; // 结束存放
利用追踪SQL语句SQL*PLUS 本身就提供; 跟踪SQL语句的功能。可以通过设置 参数来追踪SQL语句, 是一个相当不错的SQL跟踪和优化工具,而且其操作方法也简单易学。
--第1步 使用 show 命令查询当前 autotrace参数是否已开启
SQL> show autotrace
--第2步 开启autotrace参数
SQL> set autotrace on
--关闭 autotrace参数
SQL> set autotrace off
--显示执行计划和统计信息
set autotrace traceonly
--只显示执行计划
set autotrace traceonly explain
--只显示统计信息
set autotrace traceonly statistics
--显示结果集,执行计划和统计信息
set autotrace on
--显示结果集,执行计划
set autotrace on explain
--显示结果集,统计信息
set autotrace on statistics
SQL*Plus环境变量的设置和显示。
show和set命令是两条用于维护SQL*Plus系统变量的命令。
show all –查看所有68个系统变量值。
show user –显示当前连接用户。
show error –显示错误。
set off –禁止输出列标题,默认值为ON。
set off –禁止显示最后一行的计数反馈信息,默认值为”对6个或更多的记录,回送ON”。
set on –默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能。
set “SQL> ” –设置默认提示符,默认值就是”SQL> “。
set 1000 –设置屏幕显示行宽,默认100。
set ON –设置是否自动提交,默认为OFF。
set pause on –默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页。
二、 SQL*Plus常用命令
(a)ppend–添加文本到缓冲区当前行尾。
(c)hange/old/new–在当前行用新的文本替换旧的文本。
(c)hange/text–从当前行删除文本。
Del–删除当前行。
del n –删除第n行。
(i)nput 文本–在当前行之后添加一行。
(l)ist–显示缓冲区中所有行。
(l)ist n–显示缓冲区中第 n 行。
(l)ist m n–显示缓冲区中 m 到 n 行。
Run –执行当前缓冲区的命令。
/ –执行当前缓冲区的命令。
r –执行当前缓冲区的命令。
@ 文件名–运行调入内存的sql文件。
edit文件名–如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“ * from tab;”,存盘退出。
@@文件名–在.sql文件中调用令一个.sql文件时使用。
save 文件名 –将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql。
get 文件名 –调入存盘的sql文件。
start 文件名 –运行调入内存的sql文件。
spool 文件名 –把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst。
spool –显示当前的“假脱机”状态。
spool off –停止输出。
exit–退出SQL*PLUS。
desc 表名–显示表的结构。
clear –清空当前屏幕显示。
Help –帮助