`
csbison
  • 浏览: 149961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle学习笔记2

阅读更多

·MERGE INTO的基本语法    

MERGE INTO table[alias]

Using table or sql query [alias]

On (condition)

When matched then

Update set ….

When not matched then

Insert values…

 

--------

-- 注意:

-- 1) 后面的UpdateInsert 是简化了的Update,Insert语句

-- 2) merge语句应该保证on中的条件的唯一性,另外一点需要说明的是using关键字后面可以接表,当然也可以接其他的select语句做出来的一个类视图。

--------

例如:

--------

merge into user_info t1

            using user_info_temp t2

            on(t1.msisdn=t2.msisdn)

            when matched then

            update set

                 t1.prov_id = decode(t1.CREATE_TIME,greatest(t1.CREATE_TIME,t2.CREATE_TIME),t1.prov_id,t2.prov_id),

                 t1.city_id = decode(t1.CREATE_TIME,greatest(t1.CREATE_TIME,t2.CREATE_TIME),t1.city_id,t2.city_id),

                 t1.user_type = decode(t1.CREATE_TIME,greatest(t1.CREATE_TIME,t2.CREATE_TIME),t1.user_type,t2.user_type),

                 t1.create_time =decode(t1.CREATE_TIME,greatest(t1.CREATE_TIME,t2.CREATE_TIME),t2.create_time,t1.create_time),

                 t1.reg_type=t2.reg_type,

                 t1.update_time = decode(t2.CREATE_TIME,greatest(nvl(t1.update_time,t1.CREATE_TIME),t2.CREATE_TIME),

                                  t2.CREATE_TIME,nvl(t1.update_time,t1.CREATE_TIME)),

     t1.imsi = decode(t1.CREATE_TIME,greatest(t1.CREATE_TIME,t2.CREATE_TIME),t1.imsi,t2.imsi)

            when not matched then

            insert (msisdn ,user_type , reg_type , city_id , prov_id , create_time , update_time , imsi)

            values (t2.msisdn,t2.user_type,t2.reg_type,t2.city_id,t2.prov_id,t2.create_time,t2.create_time,t2.imsi)

            ; 

  

·批量插入和批量更新

    --1 批量插入

insert into wuzs_province

  (provid, provname, odid, provcode)

select distinct provid, provname, -1, provid from tmp_province;

 

--2 update的批量更新

update user_info t

set t.reg_type = (select reg_type from user_info_temp t2 where t.msisdn = t2.msisdn)

-- 这种批量更新有个注意的地方,如果括号里面的连接条件不符合时,则t.reg_type 会被赋值为null。得慎重!

-- 可以在后面的where条件中设置条件,例如:

    update dev_info t1 set

    (t1.model_id,t1.MANU_ID,t1.SW_VERSION) =

    (SELECT T2.MODEL_ID,T2.MANU_ID,T2.SW_VERSION

     FROM   BAK2_UDPAIR_HIS T2

     WHERE   t1.imei=t2.imei

     )

    where t1.change_reason in (7,8)

    and exists

    (SELECT 1

     FROM   BAK2_UDPAIR_HIS T2

     WHERE  t1.imei=t2.imei

     );

 

--3 使用merge进行批量更新

merge into tac_info_temp t1

using (select a.manu_name, b.model_name, b.model_id

         from manufacturer a, model b

        where a.manu_id = b.manu_id) t2

on (t1.manu_name = t2.manu_name and t1.model_name = t2.model_name)

when matched then

  update set t1.model_id = t2.model_id

       

·表分区有关的知识:

1. 分区的有哪些种类?如何创建相应的分区?

 Oracle提供了以下几种分区类型:

 

 范围分区(range);

 哈希分区(hash);

 列表分区(list);

 范围-哈希复合分区(range-hash);

 范围-列表复合分区(range-list)。

 

2. oracle的分区表的索引、表空间 都有globallocal之分。

全局索引就是说索引段是一个;

本地索引它的索引段与分区段是一一对应的.

有多少个分区段,就有多少个索引段,

 

 

3. 分区的优势?

  1) 可以在查询时指定分区以大量提高速度,例如:select * from dinya_test partition(part_01);

  2) 如果没有指定分区而全部遍历分区时,也可以提高查询的速度。

 

4. 重建分区索引?需要制定分区名称,例如:

alter index PK_DEV_INFO rebuild partition P1 online;

 

    

分享到:
评论

相关推荐

    Oracle学习笔记精华版

    Oracle学习笔记精华版Oracle学习笔记精华版Oracle学习笔记精华版Oracle学习笔记精华版

    Oracle学习笔记

    Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记

    Oracle非常有用的笔记。。。。。。。。。。。Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记

    oracle学习笔记 oracle学习笔记

    oracle学习笔记 oracle学习笔记oracle学习笔记 oracle学习笔记

    oracle 个人学习笔记

    oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记

    Oracle学习笔记 PDF

    本文档主要是网易云李兴华老师进行授课时所作笔记,从Oracle11g数据库的安装到复杂查询做了详细的文档记录。

    Oracle学习笔记.pdf

    oracle学习笔记,包含所有oracle概念,包,函数,oracle的组成,oracle的plsq,oracle的存储过程,oracle的事务等

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    oracle学习笔记-入门基础

    oracle学习笔记-入门基础-01-张园

    韩顺平oracle学习笔记.pdf

    分享给需要的朋友们韩顺平oracle学习笔记.pdf 大家来下载吧!

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    oracle学习笔记整理

    学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。

    oracle学习笔记

    oracle学习笔记

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    ORACLE学习笔记2:日常应用、深入管理、性能优化.

    第2章 数据库管理 第3章 数据库实例管理 第4章 数据库安全管理 第5章 数据库逻辑存储结构管理 第6章 数据库物理文件管理 第7章 数据库逻辑对象管理 第8章 常用数据操纵语言 第9章 备份和恢复数据库 第2篇 深入...

    Oracle学习笔记_(PDF版)

    Oracle学习笔记

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

Global site tag (gtag.js) - Google Analytics