SQL * PLUS 概述与常用命令

简介

    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用户所拥有的表-----

Published by

风君子

独自遨游何稽首 揭天掀地慰生平