Oracle基础

2017-10-19  本文已影响0人  Percy_Gemini

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的同义词;可以给同义词再创造同义词

索引(重点)

索引技术只用于查询!可以提高查询效率,体现在大数据量场景(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 表名(列名);
    

小结


转载请联系作者

上一篇下一篇

猜你喜欢

热点阅读