SQL*Plus概述
SQL*Plus工具是随Oracle 数据库服务器或客户端的安装而自动进行安装的管理与开发工具,Oracle数据库中所有的管理操作都可以通过SQL*Plus工具完成,同时开发人员利用SQL*Plus可以测试、运行SQL语句和PL/SQL程序。
运行方式:
命令行方式
图形界面方式(GUI)
基于Web的iSQL*Plus方式
在SQL*Plus中执行的语句有3种:
SQL*Plus命令、SQL语句和PL/SQL程序
作用
输入、编辑、存储、提取、运行和调试SQL语句和PL/SQL程序
开发、执行批处理脚本 执行数据库管理
处理数据,生成报表,存储、打印、格式化查询结果
检查表和数据库对象定义
启动SQL*Plus 命令行方式:
语法:sqlplus [username]/[password][@connect_identifier]|[NOLOG]
SQL*Plus的退出:
EXIT或QUIT命令
SQL*Plus常用命令
(1)连接命令
CONNECT:进行用户切换或连接到新的数据库。
语法: CONN[ECT] [username]/[password][@hoststring]
DISC[ONNECT]:断开与数据库的连接。
注意:该命令作用仅仅是断开与数据库的连接,不退出SQL*Plus环境!
(2)编辑命令
在SQL*Plus中执行SQL语句、PL/SQL程序时,输入的SQL语句和PL/SQL程序代码会暂时存放到SQL缓冲区中。
输入SQL语句 在语句最后加分号,并按回车,则立即执行该语句;
语句输入结束后回车,换行后再按回车,则结束SQL语句输入但不执行该语句;
语句输入结束后按回车,换行后按斜杠(/),立即执行该语句。 输入完PL/SQL程序,回车换行后 按点号(.),则结束输入,但不执行; 输入斜杠(/),则立即执行。
显示缓冲区
L[IST]
编辑缓冲区
A[PPEND]——将指定的文本追加到缓冲区内当前行的末尾;
C[HANGE]——修改缓冲区中当前行的文本;
DEL——删除缓冲区中当前行的文本;
N——用数值定位缓冲区中的当前行;
I[NPUT]——在缓冲区当前行的后面新增加一行文本;
ED[IT]——以文本编辑器方式打开缓冲区,进行编辑。
执行缓冲区
R[UN] /
清除缓冲区
CL[EAR] BUFF[ER]
注意:使用ED[IT]命令时,缓冲区中必须存在信息
常用编辑命令
LIST命令
在SQL*PLUS中编辑SQL缓冲区中的SQL语句。
文件操作命令
通常,将经常执行的SQL*Plus命令、SQL语句和PL/SQL程序存储到SQL脚本文件(以.sql为后缀)中,然后执行SQL脚本文件。
使用脚本文件的好处: 可以降低命令输入量; 可以避免输入错误。
脚本文件的创建 SAV[E] filename [CREATE]|[REPLACE]|[APPEND]
脚本文件的装载与编辑 GET filename [LIST]|[NOLIST]
脚本文件的执行 STA[RT] filename @ filename
脚本文件的注释 REM[ARK]:单行注释,放在一行语句的头部,表示该行为注释。
--:单行注释。
/*……*/:多行注释。
常用文件命令
交互式命令
替换变量 使用替换变量 &variable_name
注意:替换变量为数值类型时,可以直接引用;如果为字符型或日期型,则需将替换变量用单引号引起来。
不希望每次执行时都为替换变量赋值,可以使用两个“&”。
DEFINE命令定义替换变量 使用DEFINE命令为当前SQL*Plus环境定义CHAR类型的替换变量,语法:
ACCEPT命令定义替换变量 可以自定义提示信息,以提示用户为替换变量输入值。语法:
PROMPT选项指定提示值,用HIDE选项隐藏输入,以便于用户输入替换变量的值。
SQL> ACCEPT deno NUMBER PROMPT '请输入部门编号:'
SQL> SELECT empno
2 FROM emp
3 WHERE deptno=&deno;
查看替换变量 DEFINE SQL>DEFINE
清除替换变量 UNDEFINE variable_name
SQL>UNDEFINE dno
是否显示用值替换替代变量前后的命令文本: SET VERIFY ON|OFF
绑定变量
定义:指在SQL*Plus中定义,在PL/SQL程序中使用的变量。
语法: VAR[IABLE] variable_name TYPE
说明:
在PL/SQL中引用: :variable_name
赋值:EXECUTE :variable_name:=value
显示:PRINT variable_name
与用户通信
PROMPT命令用于输出提示信息,引导用户进行操作。
PAUSE命令用于暂停脚本文件的运行。
显示与设置环境变量
显示所有环境变量 SQL>SHOW ALL
显示某个环境变量 SQL>SHOW variable_name
设置某个环境变量 SQL>SET variable_name=value
常用环境变量
ARRAYSIZE—从数据库中提取的行数,默认15
AUTOCOMMIT—是否自动提交DML语句,默认OFF
COLSP—选定列之间的分隔符号,默认空格
FEEDBACK—显示反馈行信息的最低行数,默认6
HEADING—是否显示列标题,默认ON
LINESIZE—行长度,默认80
LONG—LONG和LOB类型的显示长度,默认80
PAGESIZE—每页所显示的行数,默认14
SERVEROUTPUT—是否显示执行DBMS_OUTPUT.PUT_LINE命令的输出结果,默认OFF AUTOTRACE—是否为成功执行的DML语句产生一个执行报告
SET AUTOTRACE
[ON|OFF|TRACEONLY][EXPLAIN][STATISTICS]
TIME—是否在SQL*Plus命令提示符之前显示时间,默认OFF
TIMING—是否显示SQL语句的执行时间,默认OFF
格式化命令
对SQL语句或PL/SQL程序执行结果的显式格式进行设置。遵循以下规则:
格式化命令设置之后,将会一直起作用,直到会话结束或下一个格式化命令的设置;
每一次报表结束时,应该重新设置SQL*Plus为默认值;
如果为某个列指定了别名,必须使用该别名,不能使用列名。
COL[UMN]:控制列的输出显示格式。
其中,option的选项有:
CLE[AR]: 清除所有列的显示格式
FOR[MAT] format: 使用格式模型改变列的显示
HEA[DING] text: 设置列标题
JUS[TIFY] {align}: 调整列标题的位置居左(left)、居中(center)还是居右(right)
[NO]PRINT: 显式[隐藏]列标题
NULL <text>:在指定位置将空值位置显示为text
TRUNCATED:删除第一行的字符串
WRAPPED: 换行
其它常用命令
显示数据库对象结构:DESC[RIBE]
清除屏幕内容 CLEAR SCREEN Shift+Delete
帮助命令:HELP
修改用户口令:PASSW[ORD] 注意:任何用户都可以修改自己的口令,只有DBA身份登录的用户才可修改其他用户的口令。