📜  DBMS 中的数据库对象

📅  最后修改于: 2021-09-08 15:25:27             🧑  作者: Mango

数据库对象是数据库中用于存储或引用数据的任何已定义对象。我们通过create 命令创建的任何对象都称为数据库对象。它可用于保存和操作数据。数据库对象的一些示例是:视图、序列、索引等。

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

不同的数据库对象:

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

    句法 :

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

    例子 :

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

    输出 :

    DESCRIBE dept;

    表输出

  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;

    查看输出

  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 服务器索引是一种模式对象,可以通过使用指针加快行的检索。索引可以显式或自动创建。如果列上没有索引,则会进行全表扫描。

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

    句法 :

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

    例子 :

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

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

    句法 :

    CREATE [PUBLIC] SYNONYM synonym FOR  object;

    例子 :

    CREATE SYNONYM d_sum FOR dept_sum_vu;

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