美文网首页
oracle对象

oracle对象

作者: 谢成强 | 来源:发表于2017-10-19 12:01 被阅读0次

    回顾

    键保留表

    举例:

    A表:id是主键, name, pid外键 B表:id主键 name

    select A.name,B.name from A,B where A.pid=B.id

    结论

    1. 多的一方是键保留表

    2. 两张表消笛卡尔积,笛卡尔积主键所在的表是键保留表。

    昨日遗留

    同义词(了解)

    概念

    ​ 可以理解为近义词;放在Oracle中就是起别名。同义词是基对象的别名,表、视图、物化视图全部可以起别名。

    创建语法

    
    create [public] SYNONYM synooym for object;
    
    --synonym表示同义词的名称,object是要创建的对象名称,public是权限范围
    
    

    案例 :创建一个私有同义词

    
    --不加[public]就代表私有
    
    create synonym owner for t_owners;
    
    --可以用来替代原表对象
    
    select * from owner;
    
    --但是更换用户后无法访问,因为是私有的。如果是公有大家都可以看到。
    
    

    oracle中varchar是常用varchar2的同义词;可以给同义词再创造同义词

    • 私有同义词:当前用户可以使用,dba权限用户必须使用 用户.同义词 的格式来访问;

    • 公有同义词:其他用户都可以访问。

    索引(重点)

    索引技术只用于查询!可以提高查询效率,体现在大数据量场景(100W以上,且某字段容易被查询)

    索引就是把某一列的值和某一行数据建立映射关系的过程。

    通过索引可以快速查找到数据的物理地址rowid;索引是一种特殊的数据,需要占用存储空间。

    创建索引

    ​ 在表的设计阶段创建,后期有需求还可以追加索引。在建表时如果指定了主键,Oracle会自动创建索引,即主键自带索引

    
    --创建索引语法
    
    create index 索引名 on 表名(列名)
    
    

    ​ 在查询建立索引的列名为使用的就是索引。

    
    --插入一百万条数据,SQL/PL语法
    
    begin
    
    for x in 1..1000000
    
    loop
    
    insert into 表名 values(数据);
    
    end loop;
    
    commit;
    
    end;
    
    
    索引的分类
    1. 唯一索引
    
    --语法 加关键字unique
    
    create unique index 索引名称 on 表名(列名);
    
    --唯一索引时要比普通索引快一些的
    
    
    1. 复合索引

    基于几列数据建立的索引叫做唯一索引

    
    --语法
    
    create index 索引名 on 表名(列1名,列2名。。。)
    
    --小细节:列名的顺序必须和查询顺序相同
    
    

    和唯一索引相比,速度稍有降低。

    1. 反向索引(了解)

    ​ 当字段值本身为连续的值,建立普通索引生成的树是歪的,所以需要把它随机化,即把它的顺寻的2进制倒过来再转为10进制创建索引。

    
    --语法,加关键字reverse
    
    create index 索引名称 on 表名(列名) reverse;
    
    
    1. 位图索引(了解)

    ​ 使用场景:位图索引适合创建在低基数列上位图索引不直接存储 ROWID,而是存储字节位到 ROWID 的映射

    ​ 优点:减少响应时间,节省空间占用

    
    --语法,关键字bitmap
    
    create bitmap index 索引名称 on 表名(列名);
    
    
    索引的注意事项

    相关文章

      网友评论

          本文标题:oracle对象

          本文链接:https://www.haomeiwen.com/subject/fwkuuxtx.html