SQL*Plus的常用命令:
SQL*PLus的命令分为两种:SQL命令和SQL*Plus命令。SQL命令主要进行对数据库的操作,SQL*Plus命令主要用来设置查询结果的
显示格式
二者的区别:
SQL*PLus:不存在缓冲区中,不以分号结束
SQL:存在缓冲区中,以分号结束。
1)连接和断开数据库连接命令
Connect 用户名/密码@主机字符串
可简写为:Conn 用户名/密码@主机字符串 例:Connect Scott/123456@orcl
***这里有一点需要注意,由于DBA的权限较大,需要进行特别的验证,Oracle设计了两种身份验证的方式 一种是:将验证集成到服
务器的操作系统上,在服务器中建立ORACLE DBA用户组,只要是属于该组的系统用户均可以执行ORACLEDBA的操作, 而不需要
额外的验证。 另一种是通过ORACLE的口令文件。DBA组的位置在:
计算机-----》右键管理----》本地用户组-------》组----------ora_dba组
例:Connect fa/faf as sysdba@orcl 无论密码和用户名是否正确,都会连接到DBA中
断开是数据库
Disconnect:断开数据库的连接 可以简写为 Disc
2)查看表,视图,同义词的结构
命令格式:Describe 表名/Desc 表名
3)SQL*Plus设置会话命令
环境设置命令可以在SQL*Plus的菜单下用图形界面配置,也可以用SET命令来设置。
用SET命令 :
SET 环境变量的名 值 //只作用与当前会话 当要查看当前设置时可以用命令行 show 环境变量名 值
1设置空格的宽度
SET Space 值 Set Space 10
2设置一次提取(fetch)的行目 取值范围为1~~5000,默认值为:15.当有较长子字段时,应该设置的小点。比如设置为其值为1。
set arraysize 值
3设置显示的行的宽度 //设置显示行的宽度,默认的宽度为80 当调整cmd的时候需要调整此项
set linesize 值
4设置显示一页的宽度
set pagesiez 值 //其值应该大于2 从第一行就开始算起。当总行数为n时 set pagesize n-1和n的效果是一样的~~~
5设置自动提交
set auto[commit] {OFF|ON|IMM|n} //On表示自动提交,OFF表示关闭自动提交,IMM表示立刻提交,n表示在执行玩n条语句后
进行提交。
6设置中断指令
set pause {ON|OFF} //当设置为ON的时候,在Select语句发出后,需要按ENTER键才可以执行相应的结果。
7设置标题字段的有无
set heading {off|on} on显示字段,off是不显示
8设置页面开头的回车的个数
set newpage {1|n|none} 设置页面开头的空格的个数。
9去掉每行后面的换行符
set trimout {ON|OFF} 设置好每行后面的换行符
10定制一定的条件
set term {on|Off} set terms 固定词语;定条件
11设置结果的分隔字符
select name||'|'||sex||'|'||age from zh; //字符将会以'|'结束
12设置运行命令是否显示
set echo on:显示文件中的每条命令及其执行结果;
set echo off:不显示文件中的命令,只显示其执行结果。
13设置变量的时候是否验证
set verify {on|off}
14设置临时存储变量
&临时变量名
select &n from zh;
15设置临时变量标记
默认的情况下临时标记为'&'
你可以通过 set define '符号' 将临时变量的存储标记为您想要的标记。
例:set define '@'
select @n from zh;
例1:SQL> select @n from zh where name='@m';
输入 n 的值: name
输入 m 的值: 美女
原值 1: select @n from zh where name='@m'
新值 1: select name from zh where name='美女'
NAME
------------------------------
美女
例2:如何让多个重复变量只输入一次
SQL> select name from @@n where name='@@n';
输入 n 的值: zh
原值 1: select name from @@n where name='@@n'
新值 1: select name from zh where name='zh'
NAME
------------------------------
zh
***sqlplus中的set命令SQL>set colsep'|'; //-域输出分隔符
SQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为on
SQL> set echo on //设置运行命令是是否显示语句
SQL> set feedback on; //设置显示“已选择XX行”
SQL>set feedback off; //回显本次sql命令处理的记录条数,缺省为on
SQL>set heading off; //输出域标题,缺省为on
SQL>set pagesize 0; //输出每页行数,缺省为24,为了避免分页,可设定为0。
SQL>set linesize 80; //输出一行字符个数,缺省为80
SQL>set numwidth 12; //输出number类型域长度,缺省为10
SQL>set termout off; //显示脚本中的命令的执行结果,缺省为on
SQL>set trimout on; //去除标准输出每行的拖尾空格,缺省为off
SQL>set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off
SQL>set serveroutput on; //设置允许显示输出类似dbms_output
SQL> set timing on; //设置显示“已用时间:XXXX”
SQL> set autotrace on; //设置允许对执行的sql进行分析
set verify off //可以关闭和打开提示确认信息old 1和new 1的显示.
4)SPOOL假脱机命令
SPOOL(假脱机命令)可以用于转存执行的命令及结果,Spool是Oracle提供为把sql查询结果导向到指定文件中,要注意是SPOOL是
SQLPLUS的命令,不是SQL语法。 spool命令可以简写为 spo
例:conn scott/tiger@orcl
spool F:\a.txt
select * from user;
spool off
***spool out与spool off的区别
***spool out:Stops spooling and sends the file to your host computer's standard (default) printer.
***spool off:Stops spooling.
***到这个,大家应该就明白了,SPOOL OUT比SPOOL OFF多了一个把文件发送到标准打印输出的动作。记得ItPub论坛上有位大
***虾总结得更简练“OUT = OFF + PRINT”。
spool的下面的命令导出文本格式的建议:
set heading off 这个是SPOOL方法导出数据时是否显示字段的属性,set heading on 是显示字段,off是不显示
set newpage none 设置页面开头的空格的个数。
set space 0
set pagesize 0
set trimout off
set trimspool on //去除重定向(spool)输出每行的拖尾空格,缺省为off
set linesize 2500
//另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。
5)编辑命令
change/被替换后的字符串/替换后的新字符串
list [n] 显示缓冲区中的内容 n表示缓冲区第n行的内容
append text:用于在SQL语句中的当前行的内容后增加text指定的属性。
edit:带哦用文本编译器编辑SQL缓冲区中的内容。可简写为ed 先关闭edit文本,然后在执行sql语句
save: 把缓冲区中的内容保存到文本里面 例:Save F:\b.txt
get:获取文本中的SQL语句,同时把文本中的内容存到缓冲区。注意 只能执行SQL语句,不能执行SQL*PLus语句。
在只有SQL的情况下 get+run=start/@
6)执行SQL语句中的命令
1 /
2 run
7)执行SQL脚本文件
1 命令格式 Start 文件名
2 命令格式 @ 文件名 //如果SQL脚本文件中又对其他脚本的调用,就使用@@ Start
例子: @ F:\a.sql或者start F:\a.txt 文件的后缀可以为 .sql .txt
8)执行存储过程命令
Execute 存储过程函数名
9)设置列显示属性
COLUMN name format A10; //设置列显示10个字符的宽度 column可以简写为col
10)show
查看当前的例程参数 如 show user
11)help
help [命令名] 例子:help start