当前位置: 代码迷 >> SQL >> 3.4 ‘/'(RUN)命令
  详细解决方案

3.4 ‘/'(RUN)命令

热度:441   发布时间:2016-05-05 09:34:37.0
oracle学习 第三章 常用的SQL*PLUS命令 ——01

下面我们开始新的一章学习!

当输入SQL语句时,该语句被存在SQL缓冲区中(即一个内存区)。这个SQL缓冲区很小,只能存一个SQL语句,当下一条SQL语句输入时,原来在缓冲区中的SQL语句被覆盖掉。SQL*PLUS是一个工具(环境)。正像我们所看到的,我们可以用它来输入SQL语句。为了有效的输入和编辑SQL语句,SQL*PLUS还提供了一些常用的命令。与SQL语句不同的是SQL*PLUS的命令是可以缩写的。下面就简单的介绍一些常用的SQL*PLUS命令。

3.1 DESC[RIBE]命令

一般在操作之前我们总是想知道表的结构。我们可以使用DESC[RIBE]命令来完成此事。您可以使用例3-1的例子来显示emp表的结构。

例 3-1

SQL> DESC emp

例 3-1 结果


从例3-1的显示结果克制:所谓一个表的结构,就是该表中包含了多少个列,每一列的数据类型和它的最大长度,以及该列是否可以为空(NULL)(也叫约束,这个将在后面的学习中进一步的讲解)。

例3-1显示的结果告诉我们:emp表中包含了8列,其中只有empno这列不能为空,各列数据类型如下:

EMPNO列为整数,最大长度为4位

ENAME列为长字符型,最大长度为10个字符。

JOB 列也为长字符型,最大长度为9个字符。

MGR 列为整数,最大长度为4位。

HIREDATE列为日期型(我们将在后面的章节中详细介绍这种数据类型)。

SAL为浮点数(即包含小数的数),最大长度为7位,其中有两位是小数。

COMM列也为浮点数,最大长度也是7位,起哄有两位是小数。

DEPTNO列为整数,最大长度为两位。

也可以使用例3-2来显示dept表的结构。

例 3-2 

SQL> DESC dept

例 3-2 结果


例 3-2显示的结告诉我们:dept表中包含了3个列,其中只有DEPTNO这一列不能为空。各列的数据类型如下:

DEPTNO为整数,最大长度为两位。

DNAME列为变长字符型,最大长度为14个字符。

LOC列也为变长字符型,最大长度为13个字符。

从上面的例3-1和例3-2可以看出,SQL*PLUS命令的结尾可以不使用分号(;)。

DESC[RIBE]命令是经常使用的SQL*PLUS命令。一般拥有经验的开发人员(程序员)在使用SQL语句开发程序之前,都要使用DESC[RIBE]命令来查看一下SQL语句要操作的表的结构,因为一旦开发人员清楚了表的结构,可以明显的减少程序出错的概率。

3.2 SET LINE[SIZE]{80|n}命令

另外一个有用的SQL*PLUS命令是SET LINE[SIZE]{80|n},其中n为自然数,80为默认值。该命令是将显示屏的显示输出置为n个字符那么宽,80个字符为此命令的默认宽度。

如果想使用例3-3的SQL语句来显示emp表中所有的列,会发现显示的结果很难看懂。

例 3-3

SQL> SELECT *  2  FROM emp;

例 3-3 结果


如果您的屏幕足够大的话,那么,您可以使用SQL*PLUS命令SET LINE 100,如例3-4.


例3-4

SQL> SET line 100
此时,您就会发现其显示输出好懂得多了,因为每一行数据都显示在同一行上,而不是像例3-3那样,同一行的结果显示在两个不同行上。

3.3 L(LIST)命令和n text命令

为了联系SQL*PLUS的命令,我们输入例3-5的SQL语句。

例 3-5

SQL> SELECT empno,ename,job,sal  2  FROM dept  3  WHERE sal >=1500  4  ORDER BY job,sal DESC;

例 3-5 结果


例3-5显示的结果告诉我们这个语句显然是错误的,因为我们所有要显示的列都在emp表中而不是在dept表中。

毛主席说:“错误总是难免的,只要改进了就是好同志。”Oracle的设计思想与毛主席他老人家的教诲是一脉相承的。也许是英雄所见略同,也许是继承了毛泽东的伟大思想,Oracle的SQL*PLUS提供了若干条命令来帮助我们发现错误和改正错误。其中最常用的这类命令之一就是L(LIST)命令,该命令用来显示SQL缓冲区中的内容。例如,您可以使用L(LIST)命令来显示您刚刚输入的SQL语句,如例3-6.

例 3-6

SQL> L

例 3-6 结果


之后可以使用n text 命令来修改出错的部分,其中n为在SQL缓冲区中的SQL语句的行号,text为替代出错那部分的SQL语句。因为从L(LIST)命令是的显示得知是第二行除了错,所以现在输入例3-7的命令来修改所犯的错误。

例 3-7

SQL> 2 FROM emp
之后,应该再使用例3-8的L(LIST)敏玲来显示SQL缓冲区的内容,以检查您的修改是否正确。

例 3-8

SQL> L

例 3-8 结果


例3-8的结果表名您所做的修改准确无误。那么我们有怎样运行这条语句呢?

3.4 ‘/'(RUN)命令

您当然没有必要重新输入这条语句,因为这条语句已经在SQL缓冲区中。Oracle提供了SLQ*PLUS命令‘/’(RUN)来重新运行在SQL缓冲区中的SQL语句。于是您可以输入例3-9的SQL*PLUS命令来重新运行刚刚修改过的SQL语句。

例 3-9

SQL> /

例 3-9 结果


以上的几条SQL*PLUS命令无疑为我们修改错误提供了方便。但Oracle所提供的这类SQL*PLUS命令远远不止这些。



---------------------分割线---------------------

今天的学习就到这,今天主要的学习,SQL缓冲区只有一条SQL语句。四个命令。DESC命令显示表结构、L显示SQL缓冲区的语句,n text 修改对应语句、/ 运行SQL缓冲区语句。

周末啦,希望大家有个愉快的周末

---------------------------------------------------

上一篇: oracle学习 第二章 限制性查询和数据的排序 ——03

下一篇:oracle学习 第三章 常用的SQL*PLUS命令 ——02

  相关解决方案