美文网首页
Oracle基础

Oracle基础

作者: Percy_Gemini | 来源:发表于2017-10-19 13:33 被阅读0次

    Oracle

    回顾

    键保留表

    举例:

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

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

    结论

    1. 多的一方是键保留表
    1. 两张表消笛卡尔积,笛卡尔积主键所在的表是键保留表。

    昨日遗留

    同义词(了解)

    概念

    ​ 可以理解为近义词;放在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 表名(列名);
      --唯一索引时要比普通索引快一些的
      
    2. 复合索引

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

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

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

    3. 反向索引(了解)

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

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

      使用场景:值有限的列(性别,颜色等等),如果是精确查询就走位图索引,范围查询不走位图索引。
      优点:减少响应时间,节省空间占用

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

    小结


    转载请联系作者

    相关文章

      网友评论

          本文标题:Oracle基础

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