美图欣赏 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 数据库 > oracel >

(Les10 Creating Other Schema Object)[20171213]

2017-12-25 20:37|来源:未知 |作者:dnzg |点击:
目的:
        创建简单和复杂视图
        视图复取数据
        创建、维护和使用序列
        创建和维护索引
        创建私有和公有同义词
 
数据库对象:
        
Object Description
Table Basic unit of storage; composed of rows  
View  Logically represents subsets of data from one or more tables    
Sequence  Generates numeric values
Index Improves the performance of some queries
Synonym  Gives alternative names to objects
视图【View】
什么是视图?
        视图呈现逻辑子集或数据的组合。视图是基于表或其他视图的逻辑表。一个视图不包含自己的数据,而是像一个窗口,通过窗口可以查看或更改表中的数据。视图所基于的表称为基表。视图是存储SELECT 声明中的数据字典。
        
视图的好处:
        视图可限制数据的访问,因为视图只显示选定的列。
        简化查询,视图进行简单的查询来检索复杂连接。
        提供数据独立性。一个视图可以从多个表中检索数据。
        视图可根据特定标准为用户提供对数据的访问权限。
 
 简单视图和复杂视图
        
    简单视图:
            仅仅从一个表导出数据
            不包含函数或数组
            视图可以执行DML操作
    复杂视图:
            从多个表导出数据
            包含函数或数组
            视图不允许DML操作
 
    创建视图语法:
            
            CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
                [(alias[, alias]...)]
            AS subquery--子查询中可包含一个复杂的select查询。
            [WITH CHECK OPTION [CONSTRAINT constraint]]
            [WITH READ ONLY [CONSTRAINT constraint]];        
        OR REPLACE :已存在的将进行覆盖重建。
        FORCE    :无论基表是否存在,都进行创建。
        NOFORCE    :使用基表存在的才能创建(默认值)
        view_name    :视图名称
        alias    :别名为视图查询选择的表达式指定名称(别名数必须与视图选择的表达式数量相匹配。)
        subquery    :子查询是一个完整的SELECT语句(您可以在SELECT列表中使用别名)。
        WITH CHECK OPTION    :指定仅可以插入或更新视图可访问的那些行
        WITH READ ONLY    :确保在此视图上不能执行DML操作
 
    视图上执行DML操作:
        简单视图可以执行DML操作
        含以下条件则不能对视图执行DML操作
                -组函数
                -GROUP BY子句
                -DISTINCT 关键字
                -ROWNUM 关键字
                -列上含有表达式,如(salary * 12)
                -基表NOT NULL的列未在视图列表中。
     移除视图:
DROP VIEW view_name;
 
序列【Sequence】
    序列是一个生成数值的数据库对象。可以创建序列,然后用来生成数值。
    
    序列的特征:
            -能自动产生唯一的数值
            -它是共享对象
            -能用于主键值
            -替换应用代码
            -它的值缓存在内存中提升访问效率
 
    序列是用户创建的数据库对象,可以由多个用户共享以生成整数。
    您可以定义一个序列来生成唯一的值,或者重复使用相同的数字。
    序列的典型用法是创建一个主键值,每个行必须是唯一的。 该序列由内部Oracle例程生成并递增(或递减)。 这可以是一个节省时间的对象,因为它可以减少编写序列生成例程所需的应用程序代码量。
(责任编辑:dnzg)