Oracle笔记(二) SQLPlus命令
对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式。
- 一种是dos风格的sqlplus:sqlplus.exe;
- 另一种是windows风格的sqlplus:sqlplusw.exe;
在Oracle 10g之中主要使用的是sqlplusw命令,因为其可以进行一些显示数据的调整。
此时会找到默认的已经可以使用的数据库实例。
范例:输入查询指令
SELECT * FROM emp;
此时的数据已经可以正常的显示,但是依然会存在数据折行的问题,因为这个是默认的每行的数据大小,而现在可以通过两个命令进行调整:
- 设置每行显示的记录长度:SET LINESIZE 300;
- 设置每页显示的记录长度:SET PAGESIZE 30;
以后这两个命令统一被称为格式化命令,但是这些格式化命令在sqlplus下的设置并不是很明显。
但是sqlplusw虽然显示上方便一些,可是对于命令的编辑上却不是很方便,如正常的操作,命令写错了,则肯定使用方向键移到错误的位置上进行修改,但是在sqlplusw之中,方向键只能控制屏幕的移动,所以这个命令根本就不适合于编辑,所以在sqlplusw之中提供了ed和@指令,可以进行记事本的调用和执行;
- 使用ed,调用记事本程序:ed a;
此时会提示用户说,现在找不到“a.sql”的文件,询问是否创建,选择“是”,但是使用ed打开记事本之后 ,Oracle中的sqlplusw窗口会进入到阻塞状态,无法使用。
- 使用@执行程序:@a;
但是在windows之中,由于提供了许多方便的编辑软件,所以一般会在外部编辑程序,例如,现在在D盘上建立一个demo.txt的文件,里面保存程序代码。
这个时候要读取在硬盘上的文件,则必须写上完整的路径:@D:\demo.txt,而且如果现在这个文件的后缀是“*.sql”的话,则不用输入文件后缀(demo.sql),输入:@d:\demo,或者更省事直接输入:@d:demo。
在一个数据库之中,会有许多的用户(现在已知的是四个用户),这每一个用户下都会有多张自己的数据表,所以要想查看所有的数据表,则可以使用如下的命令:
SELECT * FROM tab;
而且由于用户众多,所以如果要想知道当前的登录用户,则可以使用:SHOW USER; 命令完成。
而且在sqlplusw之中也可以直接进行用户的登录切换,使用如下的语法完成:
CONN 用户名/密码 [AS SYSDBA];
使用sys用户登录:CONN sys/change_on_install AS SYSDBA;
但是,一旦使用了sys连接之后,则无法直接查询emp表数据。
对于每一张表,都有其属于的用户,所以一张表的完整名称是“用户名.表名称”或者说是“模式名.表名称”,所以不同的用户要想访问其他用户的表,则应该加上用户名,即现在的访问名称:
SELECT * FROM scott.emp;
一旦使用了超级管理员登录的话,可以通过命令手工的控制数据库实例的打开和关闭;
- 关闭数据库实例:SHUTDOWN IMMEDIATE;
- 一旦关闭之后用户无法直接连接sqlplusw命令,此时可以先使用“/nolog”登录,之后使用管理员登录;
SQL> conn sys/sys as sysdba;
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
- 启动数据库实例:STARTUP;
另外,sqlplusw命令窗口也可以调用本机的操作命令,使用“host”作为前缀。
HOST COPY d:\demo.sql d:\hello.txt
以上命令必须掌握,以后肯定会使用到。