数据库管理系统中的数据库对象

A. 数据库对象 是数据库中用于存储或引用数据的任何已定义对象。我们用什么做的 创建命令 被称为数据库对象。它可以用来保存和操作数据。数据库对象的一些示例包括:视图、序列、索引等。

null
  • 表- 基本存储单元;组合行和列
  • 视图- 逻辑上表示一个或多个表中的数据子集
  • 顺序—— 生成主键值
  • 索引- 提高了某些查询的性能
  • 同义词- 对象的替代名称

不同的数据库对象:

  1. 表- 此数据库对象用于在数据库中创建表。

    语法:

    CREATE TABLE [schema.]table
                   (column datatype [DEFAULT expr][, ...]);

    例子:

    CREATE TABLE dept
               (deptno NUMBER(2),
                dname VARCHAR2(14),
                loc VARCHAR2(13));

    输出:

    DESCRIBE dept;

    table output

  2. 视图- 此数据库对象用于在数据库中创建视图。视图是基于一个表或另一个视图的逻辑表。视图本身不包含数据,但就像一个窗口,通过它可以查看或更改表中的数据。视图所基于的表称为基表。视图作为SELECT语句存储在数据字典中。

    语法:

    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
                           [(alias[, alias]...)]
                           AS subquery
                           [WITH CHECK OPTION [CONSTRAINT constraint]]
                           [WITH READ ONLY [CONSTRAINT constraint]];

    例子:

    CREATE VIEW salvu50
                   AS SELECT employee_id ID_NUMBER, last_name NAME,
                   salary*12 ANN_SALARY
                   FROM employees
                   WHERE department_id = 50;

    输出:

    SELECT *
    FROM salvu50;

    view output

  3. 顺序—— 此数据库对象用于在数据库中创建序列。序列是用户创建的数据库对象,可由多个用户共享以生成唯一的整数。序列的一个典型用法是创建一个主键值,它对于每一行都必须是唯一的。序列由内部Oracle例程生成并递增(或递减)。

    语法:

    CREATE SEQUENCE sequence
                        [INCREMENT BY n]
                        [START WITH n]
                        [{MAXVALUE n | NOMAXVALUE}]
                        [{MINVALUE n | NOMINVALUE}]
                        [{CYCLE | NOCYCLE}]
                        [{CACHE n | NOCACHE}];

    例子:

    CREATE SEQUENCE dept_deptid_seq
                            INCREMENT BY 10
                            START WITH 120
                            MAXVALUE 9999
                            NOCACHE
                            NOCYCLE;

    检查序列是否由以下人员创建:

    SELECT sequence_name, min_value, max_value,
                           increment_by, last_number
                           FROM   user_sequences;
  4. 索引- 此数据库对象用于在数据库中创建索引。Oracle server索引是一种模式对象,可以通过使用指针加快行的检索速度。可以显式或自动创建索引。如果列上没有索引,则会进行全表扫描。

    索引提供了对表中行的直接和快速访问。其目的是通过使用索引路径快速定位数据,减少磁盘I/O的必要性。该索引由Oracle服务器自动使用和维护。一旦创建了索引,用户就不需要直接活动。索引在逻辑和物理上独立于它们所索引的表。这意味着可以随时创建或删除它们,并且对基表或其他索引没有影响。

    语法:

    CREATE INDEX index
                ON table (column[, column]...);

    例子:

    CREATE INDEX emp_last_name_idx
                    ON  employees(last_name);
  5. 同义词- 此数据库对象用于在数据库中创建索引。它通过创建同义词(对象的另一个名称)简化了对对象的访问。使用同义词,可以轻松地引用另一个用户拥有的表,并缩短冗长的对象名称。要引用另一个用户拥有的表,需要在表名前面加上创建它的用户的名称,然后加上句点。创建同义词无需使用模式限定对象名,并为表、视图、序列、过程或其他对象提供替代名称。这种方法对于较长的对象名称(如视图)特别有用。

    在语法中: PUBLIC:创建可供所有用户访问的同义词 同义词:要创建的同义词的名称 对象:标识为其创建同义词的对象

    语法:

    CREATE [PUBLIC] SYNONYM synonym FOR  object;

    例子:

    CREATE SYNONYM d_sum FOR dept_sum_vu;

参考资料: 数据库对象——ibm Oracle 9i简介 :SQL学生指南第2卷

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享