`
mathfox
  • 浏览: 36488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 集合学习笔记

阅读更多

关联数组:

一维的,无界限的,同种元素的稀疏集合,只在PL/SQL中可用。

在oracle 8i中称为索引表,9i后改为关联数组。

 

嵌套表:

一维的,无界限的,同种元素的稀疏集合;

初始化是紧密的,可能被删除能稀疏的。嵌套表在PL和数据库里使用。

    嵌套表是多重表,里面元素没有继承顺序。

 

变长数组:

一维的同种元素集合。有限的,并且不是稀疏的。当定义变长数组时必须指定最大长度。

可以PL/SQL及数据库里使用。变长数组是保留顺序的。

 

 

 选择合适的集合类型。

普遍情况:在都能使用的情况下,优先使用关联数组,因为它能减少coding.不用初始化,不用extend.性能最高(在老的数据库版本中)。如果有储存到数据里的话只能使用嵌套表或是变长数组。

 

Guidelines:

  • 稀疏数组使用关联数组
  • 下标使用负数,使用关联数组。
  • 使用Oracle 10g的话,如果要使用高层集合操作,更倾向使用嵌套表而不是关联数组
  • 在表中储存少量数据使用变长数组
  • 表中储存大量数据使用嵌套表
  • 想要保证数据储存的顺序,并且是小数据量的话使用变长数组。“小”是指能储存到一个block里
  • 在使用变长数组时,不用担心删除中间数据。

 

Table 12-2. Comparing Oracle collection types

Characteristic

Associative array

Nested table

VARRAY

Dimensionality

Single

Single

Single

Usable in SQL?

No

Yes

Yes

Usable as column datatype in a table?

No

Yes; data stored "out of line" (in separate table)

Yes; data stored "in line" (in same table)

Uninitialized state

Empty (cannot be null); elements undefined

Atomically null; illegal to reference elements

Atomically null; illegal to reference elements

Initialization

Automatic, when declared

Via constructor, fetch, assignment

Via constructor, fetch, assignment

In PL/SQL, elements

referenced via

BINARY_INTEGER (-2,147,483,647 .. 2,147,483,647)

VARCHAR2 (Oracle9i Database Release 2 and above)

Positive integer between 1 and 2,147,483,647

Positive integer between 1 and 2,147,483,647

Sparse?

Yes

Initially, no; after deletions, yes

No

Bounded?

No

Can be extended

Yes

Can assign value to any

element at any time?

Yes

No; may need to EXTEND first

No; may need to EXTEND first, and cannot EXTEND past upper bound

Means of extending

Assign value to element with a new subscript

Use built-in EXTEND procedure (or TRIM to condense), with no predefined

maximum

EXTEND (or TRIM), but only up to declared maximum size

Can be compared for equality?

No

Yes, in Oracle Database 10g

No

Can be manipulated with set operators

No

Yes, in Oracle Database 10g

No

Retains ordering and subscripts when stored in and retrieved from database?

N/A

No

Yes

分享到:
评论

相关推荐

    ORACLE经典学习笔记

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

    Oracle学习笔记精华版

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

    oracle个人学习笔记

    ### Oracle个人学习笔记知识点梳理 #### 一、Oracle 用户与权限管理 **1. 创建用户** - 使用管理员账户(如 `sys` 或 `system`)登录后,可以通过以下命令创建新用户: ```sql SQL> create user zhangsan ...

    Oracle_认证学习笔记

    Oracle 认证学习笔记 本文档主要讲述 Oracle 认证学习笔记,涵盖了 Oracle 数据库体系结构基础、系统全局区(SGA)、实例(Instance)、Oracle 存储器结构等知识点。 一、 Oracle 数据库体系结构基础 Oracle ...

    Oracle数据库学习笔记

    Oracle数据库学习笔记,包括课程PPT(数据库基础,简单查询,单行多行函数,多表连接,子查询,高级子查询,集合运算,层次查询,DML与事务控制,数据库的网络连接,创建维护表,约束,视图,序列索引和同义词,用户...

    oracle上课学习笔记

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,用于...以上就是Oracle数据库学习笔记中涉及的主要知识点,对于理解和操作Oracle数据库至关重要。深入理解和掌握这些概念,将有助于你成为更优秀的数据库管理员。

    MSDN oracle学习笔记

    在“MSDN Oracle学习笔记”中,我们可以期待找到关于Oracle数据库的详细讲解和实践指导。 首先,Oracle数据库的基础知识是必不可少的。这通常涵盖数据库系统的基本概念,如SQL(结构化查询语言)的使用,数据类型,...

    Oracle经典学习笔记

    "Oracle经典学习笔记"很显然是一份针对Oracle数据库系统的学习资料,特别关注的是其SQL查询语言的使用。Oracle SQL是SQL标准的一个扩展,提供了许多特性和功能,使得数据库管理和数据操作更为高效和灵活。 首先,...

    oracle培训学习笔记

    在"Oracle培训学习笔记"中,我们可以期待涵盖以下几个关键知识点: 1. **Oracle数据库架构**:Oracle数据库由多个组件组成,包括实例(Instance)和数据库(Database)。实例是内存结构与后台进程的集合,负责管理...

    Oracle 认证学习笔记

    ### Oracle 认证学习笔记 #### 第一章 Oracle 数据库体系结构基础 本文将深入探讨 Oracle 9i DBA 认证教程中的基础知识,并重点分析 Oracle 数据库的体系结构及其核心概念。 ### 1. Oracle 数据库系统 Oracle ...

    oracle 分析函数学习笔记

    [windowing clause] -- 定义分析函数操作的行集合 ) ``` 在这个语法中,`function_name`是你要使用的分析函数,如`SUM`, `AVG`, `RANK`等。`partition by`用于定义数据的分组,`order by`用于规定计算的顺序,而`...

    Oracle 全部学习笔记 培训结构的学习资料.

    这个“Oracle全部学习笔记培训结构的学习资料”压缩包文件包含了深入学习Oracle所需的各种材料,对于想要掌握Oracle技术的人来说是一份宝贵的资源。 1. **Oracle基础知识** - 数据库概念:了解数据库的基本概念,...

    oracle完整学习笔记

    Oracle SQL还提供了许多高级特性,如子查询、联接操作、集合操作以及窗口函数等,这些都是深入掌握Oracle SQL所必需的。通过不断实践和学习,我们可以熟练运用这些工具,以高效地管理和操作Oracle数据库。

    oracle学习笔记 oracle学习方法 韩顺平视屏

    以下是对Oracle学习笔记和相关知识点的详细解析: 1. **基础概念与术语** - **SQL**:Structured Query Language,用于管理和处理关系数据库的标准语言。 - **RDBMS**:关系数据库管理系统,Oracle便是其中的代表...

    oracle数据库学习笔记

    ### Oracle数据库学习笔记知识点 #### 一、Oracle的用户管理 **Oracle认证体系:** - **OCAR (Oracle Certified Associate):** Oracle初级工程师认证,入门级别认证,为后续更高级别的认证打下基础。 - **OCP ...

    oracle学习笔记,介绍详细

    这份“Oracle学习笔记”无疑是你深入理解和掌握Oracle技术的重要资源。笔记涵盖了Oracle的语法基础、核心概念以及各种实用功能,旨在帮助初学者快速上手,同时也能为有一定经验的DBA提供参考。 首先,Oracle数据库...

Global site tag (gtag.js) - Google Analytics