zoukankan      html  css  js  c++  java
  • 数据库对象

    本节要点:

    • l  同义词
    • l  序列
    • l  视图
    • l  索引

    Oracle 数据库对象又称模式对象;数据库对象是逻辑结构的集合,最基本的数据库对象是表。其他数据库对象包括:

     

    1         同义词

    同义词是现有对象的一个别名。优点:简化SQL语句、隐藏对象的名称和所有者、提供对对象的公共访问。

    同义词共有两种类型:私有同义词、公有同义词。公有同义词可被所有的数据库用户访问。私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

     

    创建或替换现有的同义词:

    CREATE OR REPLACE SYNONYM syn_emp FOR SCOTT.emp;

    删除同义词:

    DROP SYNONYM emp;

    DROP PUBLIC SYNONYM syn_emp;

    2         序列

    序列是用于生成唯一、连续序号的对象;序列可以是升序的,也可以是降序的。

    1)         使用CREATE SEQUENCE语句创建序列:

    CREATE SEQUENCE seq_toys

             START WITH 10

             INCREMENT BY 10

             MAXVALUE 2000

             MINVALUE 10

             NOCYCLE

             CACHE 10;

    2)         可以通过序列的伪列来访问序列的值:

    • l  NEXTVAL 返回序列的下一个值
    • l  CURRVAL 返回序列的当前值

    3)         指定序列的下一个值:

    INSERT INTO toys (toyid, toyname, toyprice) VALUES (seq_toys.NEXTVAL, ‘TransFormer’, 500);

    4)         检索序列的当前值:

    SELECT seq_toys.CURRVAL FROM dual;

    5)         修改序列:

    ALTER SEQUENCE seq_toys MAXVALUE 5000 CYCLE;

    6)         删除序列:

    DROP SEQUENCE seq_toys;

    3         视图

    视图以经过定制的方式显示来自一个或多个表的数据;视图可以视为“虚拟表”或“存储的查询”;创建视图所依据的表称为“基表”.

    视图的优点有:

    • l  提供了另外一种级别的表安全性
    • l  隐藏的数据的复杂性
    • l  简化的用户的SQL命令
    • l  隔离基表结构的改变
    • l  通过重命名列,从另一个角度提供数据

    1)         创建视图

    语法:

    CREATE [OR REPLACE] [FORCE] VIEW

        view_name [(alias[, alias]...)]

      AS select_statement

      [WITH CHECK OPTION]

      [WITH READ ONLY];

    示例:

    CREATE VIEW stud_view

    AS SELECT studno, studname, subno

    FROM stud_details;

    2)         视图上的DML语句

    在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE

    视图上的DML语句有如下限制:

    • l  只能修改一个底层的基表
    • l  如果修改违反了基表的约束条件,则无法更新视图
    • l  如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图
    • l  如果视图包含伪列或表达式,则将无法更新视图

    3)         视图中可以使用单行函数、分组函数和表达式

    例:CREATE VIEW item_view AS

    SELECT itemcode, LOWER(itemdesc) item_desc

    FROM itemfile;

    4)         删除视图

    DROP VIEW toys_view;

    4         索引

    索引是与表相关的一个可选结构,用以提高 SQL 语句执行的性能,减少磁盘I/O,索引在逻辑上和物理上都独立于表的数据。

    1)         创建标准索引

    CREATE INDEX x_name ON t_student (f_name) TABLESPACE index_tbs;

    2)         删除索引

    DROP INDEX x_name;

    3)         获取索引有关数据

    与索引有关的数据字典视图有:

    USER_INDEXES - 用户创建的索引的信息

    USER_IND_PARTITIONS - 用户创建的分区索引的信息

    USER_IND_COLUMNS - 与索引相关的表列的信息

     示例:SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME

         FROM USER_IND_COLUMNS

         ORDER BY INDEX_NAME, COLUMN_POSITION;

     

    总结:

    • l  同义词是现有数据库对象的别名
    • l  序列用于生成唯一、连续的序号
    • l  视图是基于一个或多个表的虚拟表
    • l  索引是与表相关的一个可选结构,用于提高 SQL 语句执行的性能
  • 相关阅读:
    [笔记] 辛普森积分
    Luogu P4175 [CTSC2008]网络管理
    Luogu P4331 [BOI2004]Sequence 数字序列
    Luogu P1456 Monkey King
    Luogu P3261 [JLOI2015]城池攻占
    Luogu P4309 [TJOI2013]最长上升子序列
    Luogu P4246 [SHOI2008]堵塞的交通
    Luogu P3638 [APIO2013]机器人
    Luogu P4294 [WC2008]游览计划
    CF613D Kingdom and its Cities
  • 原文地址:https://www.cnblogs.com/zhouyeqin/p/7307482.html
Copyright © 2011-2022 走看看