`

Oracle基础数据类型

 
阅读更多
一、数据类型
    Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。
    1.字符数据类型
    CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。
    VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。
    因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。
    Oracle推荐使用VARCHAR2

    NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集(为Unicode字符集)。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。
    在Oracle9i中,可以以字符而不是字节为单位来表示NCHAR和NVARCHAR2列的长度。

    LONG LONG数据类型可以存放2GB的字符数据,它是从早期版本中继承来的。现在如果想存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。在表和SQL语句中使用LONG类型有许多限制。

    CLOB和NCLOB CLOB和NCLOB数据类型可以存储多达4GB的字符数据。NCLOB数据类型可存储NLS数据。

    2.数字数据类型
    Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
    NUMBER数据类型可以有两个限定符,如:
    column NUMBER ( precision, scale)
    precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
    scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

    另外还有一个float类型,不同的是它的精度位数是按照二进制位数算的。参考http://www.cnblogs.com/boulder19830907/archive/2008/01/31/1059627.html

    3.日期数据类型
    有DATE数据类型,TIMESTAMP数据类型。
    DATE用于存储表中的日期和时间数据,ORACLE使用自己的格式存储日期,使用7个字节固定长度,每个字节分别存储世纪,年月日,小时,分和秒。日期数据类型的值从公元前4712年1月1日到公元9999年12月31日。ORACLE中的SYSDATE函数用于返回当前的日期和时间。TIMESTAMP数据类型与DATE不同的是:它还返回当前的时区。
    Oracle标准日期格式为:DD-MON-YY  HH:MI:SS
    通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式。在一个会话期间,可以通过ALTER SESSION SQL命令来修改日期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。

    4.其它的数据类型
    RAW和LONG RAW RAW和LONG RAW数据类型主要用于对数据库进行解释。指定这两种类型时,Oracle以位的形式来存储数据。RAW数据类型一般用于存储有特定格式的对象,如位图。 RAW数据类型可占用2KB的空间,而LONG RAW数据类型则可以占用2GB大小。

    ROWID ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。Oracle数据库中每行都有一个伪列。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。
    ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务 中使用ROWID伪列的值。例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID.不能通过任何SQL语句来设置标准的ROWID伪列的值。
    列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID.

    LOB:LOB(大型对象)数据类型,可以保存4GB的信息。LOB有以下3种类型:
    CLOB,只能存储字符数据
    NCLOB,保存本地语言字符集数据
    BLOB,以二进制信息保存数据
    可以指定将一个LOB数据保存在Oracle数据库内,还是指向一个包含次数据的外部文件。
    LOB可以参与事务。管理LOB中的数据必须通过DBMS_LOB PL/SQL内置软件包或者OCI接口。
    为了便于将LONG数据类型转换成LOB,Oracle9i包含许多同时支持LOB和LONG的函数,还包括一个ALTER TABLE语句的的新选择,它允许将LONG数据类型自动转换成LOB.

    BFILE
    BFILE数据类型用做指向存储在Oracle数据库以外的文件的指针。

    XMLType
    作为对XML支持的一部分,Oracle9i包含了一个新的数据类型XMLType.定义为XMLType的列将存储一个在字符LOB列中的XML文档。有许多内置的功能可以使你从文当中抽取单个节点,还可以在XMLType文档中对任何节点创建索引。

    Oracle中没有boolean类型困扰,网上有两种解决方案,一是用Number(1),二是用Char(1),各有所长。

二、Oracle 9i/10g共提供了16种标量数据类型
名称 含义
Char 用于描述定长的字符型数据,长度<=2000字节
varchar2 用于描述变长的字符型数据,长度<=4000字节
nchar 用来存储Unicode字符集的定长字符型数据,长度<=1000字节
nvarchar2 用来存储Unicode字符集的变长字符型数据,长度<=1000字节
number 用来存储整型或者浮点型数值
Date 用来存储日期数据
Long 用来存储最大长度为2GB的变长字符数据
Raw 用来存储非结构化数据的变长字符数据,长度<=2000字节
Long raw 用来存储非结构化数据的变长字符数据,长度<=2GB
rowid 用来存储表中列的物理地址的二进制数据,占用固定的10个字节
Blob 用来存储多达4GB的非结构化的二进制数据
Clob 用来存储多达4GB的字符数据
nclob 用来存储多达4GB的Unicode字符数据
Bfile 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中
urowid 用来存储表示任何类型列地址的二进制数据
float 用来存储浮点数
分享到:
评论

相关推荐

    oracle数据类型及存储方式

    关于oracle数据类型及存储方式基础知识,也许对你有所帮助

    Oracle存储过程-1

    以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从实用和优化的角度出发,讨论每种数据类型的特点。从这里开始oracle之旅!...

    Oracle数据库基础教程-参考答案

    Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。 (7)

    Oracle PL SQL基础

    PL/SQL(Procedure Language/Structuer Query Language)是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作、事务控制等。PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作。

    数据库应用--Oracle基础

    Oracle的安装、运行以及使用。里面有详细的数据库基础知识,包括数据类型、Oracle对数据库操作的指令等信息。

    Oracle数据库学习指南

    8. ORACLE的数据类型 9. Oracle数据库碎片整理 10.ORACLE性能调整1 11.ORACLE性能调整2 12.Oracle专家调优秘密 13.PL_SQL单行函数和组函数详解 14.PL-SQL 15.PLSQL异常处理初步 16.SQL语句性能调整...

    ORACLE入门基础,本地动态SQL执行语句

    数据库ORACLE入门基础,本地动态SQL执行语句,PL/SQL数据类型,有具体实例。

    Oracle_PLSQL语言基础

    PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型  . PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有...

    Oracle课件.pdf

    3.1 Oracle常用数据类型 3.2创建表 3.3表的约束 4. 数据操作语言(DML) 4.1数据插入 4.2更新数据 4.3删除数据 4.4 TRUNCATE(DDL命令) 5. 操作符 5.1算术运算 5.2关系运算和逻辑运算 5.3字符串连接操作...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 数据操纵语言(DML) 第5章-利用SELECT检索数据 SQL-数据库沟通的语言标准 Oracle 11g中支持的数据类型 数据库定义语言(DDL) 约束的使用 ...

    信永国际 中文超详细Oracle教程

    第十章 Oracle数据类型 第十一章 Oracle体系结构(DBA) 第十二章 DDL(改变表结构) 第十三章 DML(改变数据结构) 第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九...

    Oracle从基础到熟练(太实用了)

    oracle基础: ①:如何进入Oracle ②:常见的开发工具 ③:创建/DB/TB/用户 授权等操作 二. oracle体系结构组件 ①:oracle完整的体系结构 ②:oracle实例的组成 ③:oracle数据库的组成 三.SQL函数与SQL查询 ①:Oracle...

    Oracle精髓(第4版)

    最新的Oracle数据库11g特性:查询结果集缓存、自动内存管理、实时应用程序测试、高级压缩、全面回忆、活跃数据守卫选项以及对OLAP选项的变更(作为物化视图进行透明访问和管理)、Flashback事务命令、透明数据加密、...

    Oracle PL_SQL语言初级教程

    复合数据类型 PL/SQL 有两种复合数据结构:记录和集合。记录由不同的域组成,集合由不同的元素组成。在本文中我 们将讨论记录和集合的类型、怎样定义和使用记录和集合。 • 复合数据类型(1) • 复合数据类型(2) • ...

    oracle课件.ppt

    改课件共263页,从安装到oracle详细的解读,罗列oracle大纲中涉及到的所有内容。目录如下: ...6.数据类型、函数 7.SQL、视图 8.PL/SQL 9.存储过程、函数、触发器 10.备份恢复 11.ERWIN 12.linux基础、shell

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    21天学通Oracle

    第13章 Oracle数据类型(教学视频:21分钟) 231 第14章 Oracle中的函数与表达式(教学视频:111分钟) 240 第15章 Oracle中的控制语句(教学视频:16分钟) 282 第16章 SQL查询(教学视频:55分钟) 290 第17章...

    基础电子中的在Oracle中存储与管理大对象数据类型

    一、Oracle数据库支持的大对象数据类型。 在Oracle数据库中为了更好的管理大容量的数据,专门开发了一些对应的大对象数据类型。具体的来说,有如下几种: 一是BLOB数据类型。它是用来存储可变长度的二进制数据。由于...

    Oracle11g从入门到精通2

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用...

Global site tag (gtag.js) - Google Analytics