Oracle学习日记(4)

1.  Oracle 中的伪列

在 Oracle 的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是在表中并不存储。伪列只能查询,不能进行增删改操作。接下来学习两个伪列:ROWID 和 ROWNUM。

ROWID:

表中的每一行在数据文件中都有一个物理地址,ROWID 伪列返回的就是该行的物理地。使用 ROWID 可以快速的定位表中的某一行。ROWID 值可以唯一的标识表中的一行。由于 ROWID 返回的是该行的物理地址,因此使用 ROWID 可以显示行是如何存储的。

ROWNUM:

在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回 1,第二行返回 2,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行数。

TIPS:ROWNUM 与 ROWID 不同, ROWID 是插入记录时生成, ROWNUM 是查询数据时生成。ROWID 标识的是行的物理地址。ROWNUM 标识的是查询结果中的行的次序。

2. 同义词

同义词(Synonym)是数据库对象的一个别名,Oracle 可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型:

  私有同义词:拥有 CREATE SYNONYM 权限的用户(包括非管理员用户)即可创建私有同义词,创建的私有同义词只能由当前用户使用。

  公有同义词:系统管理员可以创建公有同义词,公有同义词可以被所有用户访问。

3.变量声明

格式:变量名  数据类型[ :=初始值]。若数据类型需要长度,可以用括号指明长度,如:varchar2(20).

例如:

   DECLARE
       sname VARCHAR2(20) :='jerry';  ①
   BEGIN
        sname:=sname||' and tom';  ②
        dbms_output.put_line(sname);  ③
   END;
   /jerry 

①  声明一个变量 sname,初始化值是“jerry”。字符串用单引号,如果字符串中出现单引号可以使用两个单引号(’’)来表示,即单引号同时也具有转义的作用。
②  对变量 sname 重新赋值,赋值运算符是“:=”。
③  dbms_output.put_line 是输出语句,可以把一个变量的值输出,在 SQL*Plus 中输出数据时,可能没有结果显示,可以使用命令: set serveroutput on 设置输出到 SQL*Plus控制台上。
对变量赋值还可以使用 SELECT…INTO  语句从数据库中查询数据对变量进行赋值。但是查询的结果只能是一行记录,不能是零行或者多行记录。

4.常量声明

常量在声明时赋予初值,并且在运行时不允许重新赋值。使用 CONSTANT 关键字声明常量。

代码演示:声明常量
 DECLARE
     pi CONSTANT number :=3.14;  --圆周率长值  ①
     r number DEFAULT 3;   --圆的半径默认值3   ②
     area number;   --面积。
 BEGIN
     area:=pi*r*r;   --计算面积
     dbms_output.put_line(area);  --输出圆的面积
     END;
9   /
代码解析:
①  声明常量时使用关键字 CONSTANT,常量初值可以使用赋值运算符(:=)赋值,也可以使用 DEFAULT 关键字赋值。
在 SQL*Plus 中还可以声明 Session(会话,也就是一个客户端从连接到退出的过程称为当前用户的会话。)全局级变量,该变量在整个会话过程中均起作用,类似的这种变量称为宿主变量。宿主变量在 PL/SQL 引用时要用“:变量名”引用。

你可能感兴趣的:(Oracle学习日记(4))