导航

Oracle笔记(1)---SQL*PLUS 基础

Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行脚本、sql*plus命令与sql*plus语句,也可以产生简单的报表。

1、SQL*PLUS的登录

  • cmd >sqlplus "sys/jty1988 as sysdba"     (其中sys为登录账户,jty1988为密码,connection as SYS should be as SYSDBA or SYSOPER),普通账户登录: cmd > sqlplus scott/trigger
  • cmd > sqlplus/nolog

    cmd > connect sys/jty1988 as sysdba

    cmd > startup  (startup 有两个选项,A、startup mount:表示启动数据库实例的时候同时启动控制文件,但不启动数            据文件,不加任何选项的startup分三个阶段:启动实例--》打开控制文件[database mount]-->打开数据文件                  [database  open]当我们进行热备份的时候不允许是非归档模式[archive log list可以看到],若是非归档模式,需要关闭数              据库然后重新启动实例,并且不能启动数据文件[这时使用startup mount],然后使用alter database arichivelog=>alter                                   -   database open,这样就可以将非归档方式修改为归档方式  B、startup nomount:只启动实例,连控制文件都不打开,      -   适用于当一个或多个控制文件丢失或损坏时,便于启动实例后重新创建控制文件)

2、SQL*PLUS的关闭

  • shutdown immediate(常用,迫使每个用户执行完当前SQL语句后断开连接)
  • shutdown [normal](当所有用户都断开后才真正的关闭实例,若有某个用户未断开则实例无法关闭)
  • shutdown transcational
  • shutdown abort (强行关闭,可能造成文件损坏)

浏览器登录:

浏览器登录界面    

 此时不能以sys账户登录(要求必须是sysdba身份),可以使用普通账户登录,连接标识符填写数据库实例名。登录后在工作区可以编写并运行脚本,也可以加载已经编写好的脚本或保存当前脚本。

3、SQL*PLUS下查询可用命令:help index

4、查看某个命令的详细用法:?命令    例如在sqlplus下可能不支持空行,可先用?SET查看set命令的用法,然后用SET SQLBLANKLINES ON修改(sqlplus 不区分大小写,SQL语句以分号结尾)

5、执行计划(绑定变量):select * from dept where id=&v,此时可以通过给v传递不同的值来实现相应条件下的查询,若直接在查询语句中给出变量值(如id=1,id=2),则每次执行不同的sql语句都需要重新编译sql语句,使用绑定变量时sql语句只编译一次,然后把查询计划存入共享池中,便于以后获取或重用,效率较高

6、list(l)命令:查看缓冲区中的命令,例如我们刚执行过select * from dept,然后用list命令可以看到这个sql语句,若想查看多行中的某几行,可指定查看范围,例如 l2 4,表示查看2、3、4行,只查看第3行 l3

7、change(c)命令:修改缓冲区中的命令,例如缓冲区中有一个错误的命令select * fron dept,可用change/fron/from修改

8、/:执行缓冲区中的命令

9、DEL命令:删除缓冲区中的某些行,DEL 2 4,DEL 3(不是DELETE)

10、A命令:向缓冲区中追加字符串,例如A  where id = 4;

11、SAVE命令:将缓冲区中的脚本保存到某个文件中,例如: SAVE D:\test.txt

12、@命令:执行脚本文件, 例如:@  D:\test.txt

13、GET命令:把脚本内容加载到缓冲区,但不执行。 例如 : get  D:\test.txt

14、EDIT命令:使用外部的编辑器来修改缓冲区内容,windows平台下默认为记事本打开

15、COLUMN(COL)命令:显示数据时给列一个别名,例如:dept表中有列deptno,以下命 令可以修改显示时的列名          称 COL deptno heading "编号"

16、FORMAT命令:格式化输出, 例如: COL deptname format A10   COL id format 999,999

17、TTITLEBTITLE:设置报表输出时的页眉页脚。 例如:

SET  LINESIZE 100  //设置行宽

TTITLE CENTER "员工报表"  SKIP 1-       //skip 1 表示空一行,短横线表示语句未   完,下一行续写

LEFT "报表头"-

RIGHT  SQL.PNO FORMAT  99  ||""-     // SQL.PNO:页数

SKIP 2

页眉

关闭页眉页脚:TTITLE(BTITLE)  OFF

18、BREAK CUMP:

 普通结果集

BREAK去除重复的行:BREAK ON PUB

 break效果

 

COMPUTE(COMP): 在结果的最后显示一行统计行。假如有多个COMPUTE,那么只 有最后一个COMPUTE才起作用。COMP COUNT LABEL "计数" OF books_name ON  pub

 comp效果

COMPUTE和BREAK一起使用的。没有BREAK语句的COMPUTE没有任何效果。

清除comp: clear comp

 

19、spool :保存结果集,  例如:将select * from emp的结果保存到d:\result.txt文件中

Spool  d:\result.txt

Select * from emp

Spool off

 

posted on 2011-06-18 12:27  @永不止步  阅读(1658)  评论(0)    收藏  举报