oracle 10g 数据类型占用字节介绍

这篇文章的主要目的是分析建设系统所用的存储空间,避免对存储设备的过渡浪费,节省投资。同时也提高对oracle常用数据类型的认识。

介绍的类型如下:
·char
·varchar
·varchar2
·nvarchar
·nvarchar2
·number
·date

char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以 补足二十个字节;char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字;char适 用于长度比较固定的,一般不含中文的情况;CHAR的效率比VARCHAR2的效率稍高。

目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle自己开发了一个数据类型 VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼 容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

varchar和varchar2是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。中文占两个字节。

varchar和varchar2最多存储4000字节。

nvarchar和nvarchar2是长度不固定的;nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20 个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数;nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存 的英文字母也占两个字节;nvarchar/nvarchar2适用于存放中文。

NUMBER最多占用22个字节,最大可以保存38个十进制位。
Number默认情况下,精度为38位,取值范围1~38之间。它实际上是磁盘上的一个变长类型,会占用0~22 字节的存储空间。 但定义的一个Number型字段到底要占用多少字节呢?从网上找到了如下公式。
其实有公式可以计算:
number(p,s)占用得空间为: 
length = floor((p+1)/2) + 1    
备注:如果该数值为负数,需要再加一个字节。
----------------
例如:NUMBER(14,4)的类型数值,存储空间为
select floor((14+1)/2) + 1 from dual 
结果输出为:8

DATE类型在oracle10g中占用7个字节。

在粗略估计一张表每条记录占用多少空间时,可以参考上述的规则,查询数据字典也是一种途径。

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='';

在查询结果中,有一列叫DATA_LENGTH,记录了占用最大字节数。

时间: 2024-09-20 00:09:05

oracle 10g 数据类型占用字节介绍的相关文章

Java中八种基本数据类型占用字节空间总结

原文:http://763691.iteye.com/blog/743259 基本数据类型  所占用空间大小 byte b; 1字节 short s; 2字节 int i; 4字节 long l; 8字节 char c; 2字节(C语言中是1字节) float f; 4字节 double d; 8字节 boolean bool; false/true   1字节 基本数据类型注意事项: 1.未带有字符后缀标识的整数默认为int类型:      未带有字符后缀标识的浮点数默认为double类型.

Oracle 10g lite 介绍

原文整理自网络: 摘要:近年来,嵌入式数据库发展迅速,出现了许多优秀的软件产品,这些产品可以广泛应用于资源紧张的嵌入式计算机或手持终端.Oracle作为著名数据库厂商也推出了自己的嵌入式数据库产品.本文着重介绍了ORACLE10G LITE嵌入式数据库系统的特点.机制以及如何应用于某机动式指挥系统. 中国论文网 关键词:嵌入式数据库:手持终端:Oracle 10g lite 中图分类号:TN915.09 文献标识码:A文章编号:1007-9599 (2012) 08-0000-02 一. 嵌入式

ORACLE基本数据类型总结

     ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型.数字类型.日期类型.LOB类型.LONG RAW& RAW类型.ROWID & UROWID类型. 在讲叙字符串类型前,先要讲一下编码.字符串类 型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB) 两种.数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块

浅谈ORACLE 10G 闪回恢复区

oracle|恢复   何为闪回恢复区 Oracle 10g 有一项新功能称为:自动的基于磁盘的备份与恢复( Automatic Disk-Based Backup and Recovery ).实现该功能的基础为本文要讲述的闪回恢复区( Flash Recovery Area ).闪回恢复区是 Oracle 10g 中的新事物.简单的说,闪回恢复区是一块用以存储恢复相关的文件的存储空间.允许用户集中存储所有恢复相关的文件.   闪回恢复区可以放在如下几种存储形式上: l         目录

[Oracle 10g] 表空间更名

oracle [Oracle 10g] 表空间更名作者:Fenng 日期:24-Oct-2004 出处:http://www.dbanotes.net版本:0.1 简单介绍在 Oracle 10g 以前的版本,更改表空间名字是几乎不可能的事情,除非删除,重新创建,大费周章.Oracle 10g 新添加了一项更改表空间名字的功能,使得更改表空间名字瞬间即可完成.是个较为人性化的功能. SQL> COL FILE_NAME format a70SQL> SET linesize 120SQL>

Oracle 10g vs PostgreSQL 8 vs MySQL 5(外围特性评比)

mysql|oracle This is my comparison of installing and getting started with Oracle 10g, PostgreSQL 8 and MySQL 5. This is what I consider the comparison of state of the art for three categories of DB: Commercial vs. Academe vs. Internet Model. This is

Oracle 10g(10.1.0.2)中的OPTIMIZER

oracle Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ Tom Kyte的新书Effective Oracle by Design的第6章 Getting the Most Out of the Cost-Based Optimizer中介绍了参数OPTIMIZER_INDEX_COST_ADJ,并认为可以理解为Oracle执行多块(MultiBlock)I/O(比如全表扫描)的代价与执行单块(Single-block)I/O代价的相对比例.T

Oracle 10G First Release的新特性简介(下)

oracle Oracle 10G First Release的新特性简介(下) By Fenng 2003-07-10 注:近日Oracle已经正式宣布该版本的Oracle命名为10G,其中的G为Grid之意.特此更正. 高可用性的加强 1.缩短应用和数据库升级的宕机时间 通过使用standby数据库.允许在不同版本的standby和产品数据库间切换.现有的联机重定义功能能够支持一步克隆所有相关的数据库对象. 2.回闪(Flashback)任何错误 该版本的Oracle也扩展了Flashbac

Oracle 10G First Release的新特性简介(上)

oracle Oracle 10G First Release的新特性简介(上)   By Fenng 2003-6-8   Oracle(www.oracle.com)公司早已经宣称,Oracle 9i数据库只是一个过渡性的产品,真正的技术革新很可能在下一版,也就是通常说的10i(内部可能的版本号是2003,以下简称10i,估计在正式发行的时候会有一个新的名字)中体现出来.很多技术人员可能都会比较关心Oracle 10i究竟能有哪些新功能,是否能提供一些激动人心的新特性?我们在这里对Oracl