SQL*Plus的常用命令

 SQL*Plus的常用命令

数据库实例支持四种状态:打开(open),关闭(close),已装载(mount),和已启动(nomount)。

一、启动数据库
1. startup:启动数据库实例,装载并打开数据库。
2. starup mount:启动数据库实例,装载数据库,但并不打开
3. startup nomount:启动数据库实例,不装载。通常只在整个数据库创建过程中使用该模式。(控制文件丢失时)
4. alter database open;   (继续打开数据库需进行的操作)
5. alter database open read only; (以只读的方式打开数据库,适用于仅具有查询功能的数据库系统。)
6. startup restrict:启动后限制对数据库实例的访问。仅仅允许一些特权用户(具有DBA身份)才能使用数据库。
7. startup force :实际上是强行关闭数据库(shutdown abort)和启动数据库(startup)的一个综合。在系统遇到问题不能关闭数据库使使用。


数据库的启动过程分为三个阶段:
第一阶段:启动实例
    包括:1.读取参数文件;2.分配SGA;3.启动后台进程。
第二阶段:装载数据库
    装载数据库是将数据库与已启动的实例相联系。数据库装载后,数据库保持关闭状态。
第三阶段:打开数据库
        此步骤使用数据库可进行正常的操作的处理。主要是打开控制文件,数据文件和日志文件。
    要启动和关闭数据库,必须要以具有oracle管理员权限的用户登录,通常也就是以sysdba权限的用户登录。

二、关闭数据库
1. shutdown (normal):正常关闭,等待目前所有用户退出关闭数据库,再不允许任何用户连接。
2. shutdown immediate:立即关闭,断开所有已经连接的用户然后关闭。
    在以下情形中使用立即关闭数据库模式:
    a. 要初始化一个自动的并且未参与的备份
    b. 当要马上发生电源的关闭动作时
    c. 当数据库或其中一个应用程序功能不正常,此时又不能联络到用户以请求注销操作或者这些用户不能注销时
3. shutdown transactional:计划关闭数据库,等待当前所有活动的事务完成后,以shutdown immediate方式关闭数据库。
4. shutdown abort:当数据库实例出现异常,中止数据库实例,立即关闭。
    在以下情形中使用立即关闭数据库模式:
    a. 数据库或其中一个应用程序功能不正常且未使用其它关闭操作
    b. 需要即刻关闭数据库(例如知道会在一分钟内发生关闭电源的动作)
    c. 启动实例遇到问题

三、连接命令
conn[ect] 用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper];
当用特权用户登录时,必须带上as sysdba 或as sysoper
disc[onnect] 用来断开与当前数据库的连接;
passw[ord] 用户修改用户的密码;如果想要修改其他用户密码,需用sys/system登录
show user 显示当前用户名
exit 该命令会断开与数据库的连接,同时会退出sql*plus

四、文件操作命令
start和@:运行sql脚本
例如:sql>start d:\aa.sql或者sql>@ d:\aa.sql
edit:该命令可以编辑指定的sql脚本;例如sql> edit d:\aa.sql
spool:该命令可以将sql*plus屏幕上的内容输到指定文件中;
例如sql>spool d:\ b.sql,并且输入sql>spool off

五、交互式命令
& :可以替代变量,而该变量执行时,需要用户输入
例如:sql>select * from emp where job=‘&job’;

六、编辑命令
list/l: 查看Oracle缓冲区中曾经写的命令  
行编辑命令的使用,change(替换字符串), Append(追加字符串)等
save :将当前缓冲区中内容保存至脚本文件中。get:获得执行的脚本内容,并不执行

七、报表命令
显示和设置环境变量,可以来控制输出的各种格式,
set linesize 设置显示行的宽度,默认是80个字符
sql>show linesize; sql>set linesize 90
pagesize设置每页显示的行数目,默认是14
用法与linesize相同

column:给SQLPLUS各种关于列的标题、格式和处理的指令。配合使用column <column name> clear
例如:sql> COLUMN deptno HEADING department    //改变缺省的列标题
           sql> COLUMN dname FORMAT a20 //改变列的显示长度(字符型)
           sql> COLUMN deptno FORMAT 0099 //改变字段的格式(数值型)
           sql> COLUMN sal FORMAT  $99,990
           sql> COLUMN deptno justify Left; //改变字段的对齐方式
           sql> COLUMN <column_name>      //显示列的当前的显示属性值
           sql> CLEAR COLUMNS      //将所有列的显示属性设为缺省值

FORMAT选项用于指定列的显示格式,其中格式模型包含以下一些元素:
     An:设置char,varchar2类型列的显示宽度;
     9 :在number类型列上禁止显示前导0;
     0 :在number类型列上强制显示前导0;
     $ :在number类型列前显示美元符号;
     L :在number类型列前显示本地货币符号;
     .:指定number类型列的小数点位置;
     ,:指定number类型列的千分隔符;

例如:设置显示salary列的格式﹕
        col salary for $9,999.99;//逗号 表示千位符号﹐9为不显示前导0﹐
  //設置前導0的格式為﹕$009,999.00
  //設置本地貨幣符號的格式為﹕L009,999.00;

ttitle/btitle:设置报表每一页的头标题。配合使用TTTILE OFF和BTITLE OFF

主要参数的说明:
  a. 报表标题的显示的位置,有LEFT,CENTER决定
  b. 还可以使用用户的变量(内容有系统来维护),如SQL.PNO
           页号, SQL.LNO行号等
  c. COL[N] 就是在第几个字符位置开始显示标题。
例如:
sql> TTITLE CENTER  “我的报表” skip 1 –
        LEFT “报表制作” RIGHT “页码” –
        FOTMAT 999  SQL.PNO SKIP 2;
sql> BTITLE COL 5 “报表页脚” ;

break on:一般可以用BREAK ON column SKIP xx 来对查询结果进行排列BREAK ON 的参数如下:
clear breaks             清除所有的break定义
break on column      在该列上中断
break on row            在每一行上中断
break on page          在每页上中断
break on report         在每一报告上中断
skip   n                      跳过n行
skip   page                跳过未使用的页


例如:分别以不同的中断形式,对emp表中的deptno进行排列:
SQL> break on deptno;
SQL> set pagesize 100
SQL> select deptno,ename,sal from scott.emp order by deptno;
SQL> break on deptno skip 2
SQL> select deptno,ename,sal from scott.emp order by deptno;
SQL> break on deptno skip page
SQL> select deptno,ename,sal from scott.emp order by deptno;

COMPUTE:对结果进行格式化,配合使用clear compute
CMP [FUNCTION LAB TEXT] OF {EXPR|COLUMN|ALIAS}
ON {EXPR|COLUMN|ALIAS|REPORT|ROW}
function可以是下面的参数之一:
       AVG     数字类型的平均值
       COU     所有类型的个数
       MIN     NUMBER,VARCHAR,CHAR,NCHAR,NVARCHAR2类型的最小值
       MAX     NUMBER,VARCHAR,CHAR,NCHAR,NVARCHAR2类型的最大值
       NUM     计算所有类型的行数
       SUM     计算所有非空类型的总和
LAB TEXT显示的字符串:
       OF    OF子串或表达式或别名
       ON    ON子串或表达式或别名或REPORT或ROW
 
 
例如:对emp表中不同的部门进行格式化,计算平均工资,并加以标记”salary average”
sql>break on deptno;
sql>select deptno, ename, sal from emp order by deptno;
sql>COMP AVG LABEL ‘salary average’ of sal on deptno;
sql>select deptno, ename, sal from emp order by deptno;

八、补充说明
以下17个是作为语句开头的关键字: 
alter  drop  revoke  audit  grant  rollback* commit*   insert  select  comment  lock  update  create
noaudit  validate  delete  rename 
这些命令必须以“;”结尾 
带*命令句尾不必加分号,并且不存入SQL缓存区。
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值