简介
SQL * PLUS 是用户与oracle进行交互的客户端工具。在SQL*PLUS 中,用户可以执行输入的SQL语句、PL/SQL 语句,以及各种sql *plus命令,还可以格式化SQL,PL/SQL语句的输出结果等。
SQL*PLUS的命令类型:
- SQL : 是指DDL 、DML和DCL命令等
- PL/SQL : 通过命令编译的各种过程、函数、触发器和包等。
- SQL*PLUS 内部命令 :主要用于设置查询时结果的格式化,保存、编辑、查看和执行SQL或PL/SQL 程序,一节设计一些环境变量等。
(1)启动与退出:
启动:
① 开始菜单法:开始–>所有程序–>oracle-oraDb11g_home1 –>应用程序开发–>sqlplus输入用户名,密码即可
②命令启动法:开始–>搜索程序和文件–>sqlplus –>找到sqlplus 输入用户名,密码即可
退出:
在界面的SQL> 后输入exit或者quit均可以退出。
(2)命令 *重点
describe命令 可缩写为desc:
作用: 返回数据库中所存储对象的描述,如对于表、视图来说desc命令可以列出其各个列的名称以及各个列的属性;此外还可以输出过程、函数 程序包的规范。
desc scott.emp; -- 查询表结构
desc dbms_output; --查看系统dbms_output程序包的结构
prompt命令 :
作用: 用来向屏幕发送消息,在我们需要编写程序与用户进行交互时,此命令可以给用户一定的提示。
SQL> prompt "请输入您的姓名";"请输入您的姓名"
define命令和accept命令 :
作用:在sql语句中,需要定义变量时可以使用define和accept命令,变量定以后便可在程序中多次使用,使用undefine命令可以清除所定义的变量。
①define 用于创建一个数据类型为char的用户自定义变量
命令 | 说明 |
---|---|
define | 显示所有用户已定义的变量 |
define variable | 显示指定变量的名称,值和数据类型 |
define variable=value | 为用户创建一个char类型的变量 ,并赋值 |
①define undefine
SQL> defineDEFINE _DATE = "28-9月 -18" (CHAR)DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)DEFINE _USER = "SCOTT" (CHAR)DEFINE _PRIVILEGE = "" (CHAR)DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)DEFINE _EDITOR = "Notepad" (CHAR)DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)DEFINE _O_RELEASE = "1102000100" (CHAR)
SQL> define test =1122
SQL> define testDEFINE TEST = "1122" (CHAR)
SQL> undefine test
②accept
可以定义一个变量,可可以制定一个用户提示,用于提示用户输入指定的数据
accept varibale [datatype] [format format] [prompt text] [hide]
- vairbale 指定变量名,如果不存在则新建
- datatype 制定变脸的数据类型 char munber date 默认为char
- format 指定变量的格式
- prompt text 用户输入数据之前的提示性文本
- hide 用于隐藏用户为变量输入的值
SQL> accept temptno number prompt "请输入雇员编号:" hide
请输入雇员编号:
SQL> select empno ,ename from scott.emp where empno=&tempno;
替换变量:
作用:在oracle数据库中,可以使用替换变量来临时存储有关数据,在运行sql语句时,如果某个变量前面有&符号,执行该sql语句时,系统会提示用户为该变量提供一个具体的值,如:&、 &&
①&替换变量
常用在 while、 order by 子句、列表达式、表名、整个select语句中来替换一些变量。
SQL> select ename ,sal ,job,hiredate from scott.emp where sal >&salnew;
输入 salnew 的值: 4900
原值 1: select ename ,sal ,job,hiredate from scott.emp where sal >&salnew
新值 1: select ename ,sal ,job,hiredate from scott.emp where sal >4900ENAME SAL JOB HIREDATE
-------------------- ---------- ------------------ --------------
KING 5000 PRESIDENT 17-11月-81
注意:如果替换变量是字符型数据,在输入值时,必须使用单引号将字符类型数据引起来,对字符类型或日期类型数据,在使用中如果用引号引用起来,当输入替换变量时就可以省略引号了。
SQL> select ename ,sal ,job,hiredate from scott.emp where ename =&salnew;
输入 salnew 的值: 'BLAKE'
原值 1: select ename ,sal ,job,hiredate from scott.emp where ename =&salnew
新值 1: select ename ,sal ,job,hiredate from scott.emp where ename ='BLAKE'ENAME SAL JOB HIREDATE
-------------------- ---------- ------------------ --------------
BLAKE 2850 MANAGER 01-5月 -81
②&&临时替换变量
在select语句中,如果需要重新使用一个变量并且不希望重新提示输入该值,那么可以使用&&替换便令,为了避免为同一个变量提供两个不同的值,且使得系统为同一个变量值提示一次信息。
select empno, ename, &&columnname from emp where sal>=3000 order by &&columnname;
show命令
show 命令用来显示当前sqlplus环境中的系统变量、错误信息、初始化参数、当前用户信息等。
命令 | 说明 |
---|---|
show all | 查看所有系统变量的值 |
show errors | 查看错误信息 |
show parameters | 显示初始化参数的值 |
show release | 查看数据库版本 |
show SGA | 查看SGA的大小(要有权限) |
show sqlcode | 显示数据库操作之后的状态代码 |
show user | 显示当前连接的用户 |
save命令
在SQL*PLUS中可以执行一条或若干条sql命令,它们被存放在缓冲区中,且缓冲区中只能存放最近刚执行的sql或pl/sql ,(后进的覆盖之前的),如果要保存以往执行过的语句,要使用save。
save filename [create] [append] [replace]
filename : 存放语句的文档名
[create] [append] [replace] :create表示文档不存在,新建;append表示文档已经存在 ,追加;replace表示文档已经存在 , 覆盖。
get命令
上面说过save命令用来保存,那么get命令就是用来读取的,将保存后的文件读取到缓冲区中进行显示,get命令的语法格式:
get filename
edit命令
使用edit命令可以将缓冲区的内容复制到一个文件中 ,默认文件afiedt.buf ,当然也可以制定一个已经命了名存在的文件。
edit filename
@命令
用于执行存放在脚本文件中的命令:与start命令作用相同。
@ filename
spool命令
将输出结果以及语句都保存在文本文件中。
开始:
spool filename [create] or [append] or [replace] out
[create] or [append] or [replace] 三选一
out 启动该功能。
结束:
spool foff
(3)sqlplus 环境的设置
我们可以打开SQL*PLUS界面通过属性的设置来改变其背景颜色、窗口大小、字体颜色、大小等等布局设置。
①linesize用于设置每一行数据可显示的数据量大小 ,默认80 。
show linesize
set linesize 160
②pagesize用于设置每一页的数据量大小 ,默认14。
③column 设置列的属性
column [columname | columnalias] [option]
[columname | columnalias] :分别为要设置格式的列名,列的别名
[option] :相关选项见下表
选项 | 描述 |
---|---|
Clear | 清除列的格式 |
Format | 显示格式的设置 :An列宽 L货币符号 .小数点位置等等 |
Heading text | 设置列标题 |
Justify[align] | 列标题对齐方式 center left right |
Null text | 指定为空值显示的内容 |
④pause 用于查询结果行数多(避免查询结果太多在屏幕上快速显示),设置分屏显示,使用滚动键查看。
set pause on | off
⑤ttitle btitie 设置页眉和页脚
SQL> set pause on
SQL> set pause off
SQL> ttitle center "scott用户所拥有的表"
SQL> btitle center "---------scott用户所拥有的表-----"
SQL> select * from tab;scott用户所拥有的表
TNAME TABTYPE CLUSTERID
------------------------------------------------------------ -------------- ----------
ADDRESS TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
FSB TABLE
SALGRADE TABLE
STU TABLE
STUDENT TABLE
STUDENT1 TABLE
STUDENT2 TABLE---------scott用户所拥有的表-----