Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行脚本、sql*plus命令与sql*plus语句,也可以产生简单的报表。
1、SQL*PLUS的登录
cmd>sqlplus"sys/jty1988assysdba"(其中sys为登录账户,jty1988为密码,connectionasSYSshouldbeasSYSDBAorSYSOPER),普通账户登录:cmd>sqlplusscott/trigger
cmd>sqlplus/nolog
cmd>connectsys/jty1988assysdba
cmd>startup(startup有两个选项,A、startupmount:表示启动数据库实例的时候同时启动控制文件,但不启动数据文件,不加任何选项的startup分三个阶段:启动实例--》打开控制文件[databasemount]-->打开数据文件[databaseopen]当我们进行热备份的时候不允许是非归档模式[archiveloglist可以看到],若是非归档模式,需要关闭数据库然后重新启动实例,并且不能启动数据文件[这时使用startupmount],然后使用alterdatabasearichivelog=>alter-databaseopen,这样就可以将非归档方式修改为归档方式B、startupnomount:只启动实例,连控制文件都不打开,-适用于当一个或多个控制文件丢失或损坏时,便于启动实例后重新创建控制文件)
2、SQL*PLUS的关闭
shutdownimmediate(常用,迫使每个用户执行完当前SQL语句后断开连接)
shutdown[normal](当所有用户都断开后才真正的关闭实例,若有某个用户未断开则实例无法关闭)
shutdowntranscational
shutdownabort(强行关闭,可能造成文件损坏)
浏览器登录:
此时不能以sys账户登录(要求必须是sysdba身份),可以使用普通账户登录,连接标识符填写数据库实例名。登录后在工作区可以编写并运行脚本,也可以加载已经编写好的脚本或保存当前脚本。
3、SQL*PLUS下查询可用命令:helpindex
4、查看某个命令的详细用法:?命令例如在sqlplus下可能不支持空行,可先用?SET查看set命令的用法,然后用SETSQLBLANKLINESON修改(sqlplus不区分大小写,SQL语句以分号结尾)
5、执行计划(绑定变量):select*fromdeptwhereid=&;v,此时可以通过给v传递不同的值来实现相应条件下的查询,若直接在查询语句中给出变量值(如id=1,id=2),则每次执行不同的sql语句都需要重新编译sql语句,使用绑定变量时sql语句只编译一次,然后把查询计划存入共享池中,便于以后获取或重用,效率较高
6、list(l)命令:查看缓冲区中的命令,例如我们刚执行过select*fromdept,然后用list命令可以看到这个sql语句,若想查看多行中的某几行,可指定查看范围,例如l24,表示查看2、3、4行,只查看第3行l3
7、change(c)命令:修改缓冲区中的命令,例如缓冲区中有一个错误的命令select*frondept,可用change/fron/from修改
8、/:执行缓冲区中的命令
9、DEL命令:删除缓冲区中的某些行,DEL24,DEL3(不是DELETE)
10、A命令:向缓冲区中追加字符串,例如Awhereid=4;
11、SAVE命令:将缓冲区中的脚本保存到某个文件中,例如:SAVED:\test.txt
12、@命令:执行脚本文件,例如:@D:\test.txt
13、GET命令:把脚本内容加载到缓冲区,但不执行。例如:getD:\test.txt
14、EDIT命令:使用外部的编辑器来修改缓冲区内容,windows平台下默认为记事本打开
15、COLUMN(COL)命令:显示数据时给列一个别名,例如:dept表中有列deptno,以下命令可以修改显示时的列名称COLdeptnoheading"编号"
16、FORMAT命令:格式化输出,例如:COLdeptnameformatA10COLidformat999,999
17、TTITLE、BTITLE:设置报表输出时的页眉页脚。例如:
SETLINESIZE100//设置行宽
TTITLECENTER"员工报表"SKIP1-//skip1表示空一行,短横线表示语句未完,下一行续写
LEFT"报表头"-
RIGHTSQL.PNOFORMAT99||"页"-//SQL.PNO:页数
SKIP2
关闭页眉页脚:TTITLE(BTITLE)OFF
18、BREAKCUMP:
BREAK去除重复的行:BREAKONPUB
COMPUTE(COMP):在结果的最后显示一行统计行。假如有多个COMPUTE,那么只有最后一个COMPUTE才起作用。COMPCOUNTLABEL"计数"OFbooks_nameONpub
COMPUTE和BREAK一起使用的。没有BREAK语句的COMPUTE没有任何效果。
清除comp:clearcomp
19、spool:保存结果集,例如:将select*fromemp的结果保存到d:\result.txt文件中
Spoold:\result.txt
Select*fromemp
Spooloff