`
csbison
  • 浏览: 153550 次
  • 性别: 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学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    Oracle学习笔记.doc

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

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

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

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

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    oracle学习笔记整理

    以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...

    Oracle学习笔记 Oracle学习笔记

    根据提供的信息,我们可以总结出以下Oracle数据库学习的关键知识点: ...以上是基于提供的内容整理出的Oracle学习笔记中的关键知识点。通过理解这些基础知识,可以更好地管理和操作Oracle数据库。

    oracle学习笔记.txt

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

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

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

    oracle学习笔记-入门基础

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的特性和功能来优化数据管理和查询性能。本文主要探讨Oracle数据库的入门基础知识,特别是与索引相关的概念。 首先,我们要理解ROWID的概念。ROWID是...

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

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

    oracle学习笔记下载

    ### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

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

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

    全网最全的oracle学习笔记

    全网最全的oracle学习笔记,oracle学习笔记,oracle,### 4、oracle的七个服务 ```sql 1、Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如...

Global site tag (gtag.js) - Google Analytics