Oracle数据库之数据类型

Oracle基本数据类型(亦叫内置数据类型,internal datatypes或built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW&RAW类型、ROWID&UROWID类型。

下面介绍常用的Oracle数据类型:

一、字符串类型

字符串数据类型可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种。

固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。

可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。

1. CHAR

定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE)、CHAR(12 CHAR)。一般来说默认是存储字节。

2. NCHAR

一个包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2000字节的信息,它的最大长度取决于国家字符集。

3. VARCHAR2

变长字符串,与CHAR类型不同,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4000字节的信息。

4. NVARCHAR2

一个包含UNICODE格式数据的变长字符串,NVARCHAR2最多可以存储4000字节的信息。

二、数字类型

1. NUMBER

NUMBER(P,S)是最常见的数字类型,可以存放数据范围为10^130~10^126(不包含此值),需要1~22字节(BYTE)不等的存储空间。

P 是Precison的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38个有效数字。

S是Scale的英文缩写,可以使用的范围为-84~127。Scale为正数时,表示从小数点到最低有效数字的位数,它为负数时,表示从最大有效数字到小数点的位数。

2. INTEGER

INTEGER是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

3. FLOAT

FLOAT类型也是NUMBER的子类型。

Float(n),数n指示位的精度,可以存储的值的数目。n值的范围可以从 1 到 126。若要从二进制转换为十进制的精度,请将n乘以 0.30103。要从十进制转换为二进制的精度,请用3.32193乘小数精度。126位二进制精度的最大值是大约相当于38位小数精度。

三、日期类型

1. DATE

DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。

2. TIMESTAMP

TIMESTAMP是一个7字节或12字节的定宽日期/时间数据类型,是DATE类型的扩展类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位

四、LOB类型

内置的LOB数据类型包括BLOB、CLOB、NCLOB、BFILE(外部存储)的大型化和非结构化数据,如文本、图像、视频、空间数据存储。

1. CLOB

CLOB存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集。CLOB对象可以存储最多 (4 gigabytes-1) * (database block size) 大小的字符

2. NCLOB

NCLOB存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,NCLOB对象可以存储最多(4 gigabytes-1) * (database block size)大小的文本数据。

3. BLOB

BLOB存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。BLOB对象最多存储(4 gigabytes-1) * (database block size)的二进制数据。

4. BFILE 数据类型

二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理。

五、RAW & LONG RAW

1. RAW

用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2000字节的信息,建议使用 BLOB 来代替它

2. LONG RAW

LONG RAW类型,能存储2GB的原始二进制数据(不用进行字符集转换的数据)。建议使用BLOB来代替它。

六、ROWID & UROWID类型

1. ROWID

ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。Oracle数据库中每行都有一个伪列。

ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务中使用ROWID伪列的值。例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID。不能通过任何SQL语句来设置标准的ROWID伪列的值。

列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID。

2. UROWID

UROWID,它用于表,是行主键的一个表示,基于主键生成。UROWID与ROWID的区别就是UROWID可以表示各种ROWID,使用较安全。一般是索引组织表在使用UROWID。

Oracle数据库之数据类型的更多相关文章

  1. 【转】oracle数据库NUMBER数据类型

    原文:http://www.jb51.net/article/37633.htm NUMBER ( precision, scale)a)  precision表示数字中的有效位;如果没有指定prec ...

  2. oracle数据库的数据类型

    一.字符类型 (1)固定长度的字符串 CHAR(字节长度是1~2000之间) CHAR(8)可以存储4个双字节的字符,8个单字节的字符,不足8字节剩余的部分用空格占据 (2)可变长度字符串 VARCH ...

  3. oracle数据库——常用的数据类型

    2018-12-19    23:08:03 oracle数据库中常用的数据类型有23种,我们把数据类型分为字符型.数字型.日期型和其他数据类型. 一.字符型: 数据类型 取值范围 (字节) 说明 v ...

  4. [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏

    Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...

  5. Oracle数据库中的大对象(LOB)数据类型介绍

    一.LOB数据类型的介绍 大对象(LOB)数据类型允许我们保存和操作非结构化和半结构化数据,如文档.图形图像.视频片段.声音文件和XML文件等.DMBS_LOB 包被设计用于操作 LOB 数据类型.从 ...

  6. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  7. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  8. 【转】通过Hibernate将数据 存入oracle数据库例子

    一. Hibernate介绍 Hibernate是基于对象/关系映射(ORM,Object/Relational Mapping)的一个解决方案.ORM方案的思想是将对象模型表示的对象映射到关系型数据 ...

  9. Oracle数据库全球化

    一.自定义数据库和各个会话的语言相关行为 1.1 全球化功能 1.2 使用全球化支持功能 二.使用数据库和NLS字符集 2.1 语言排序与选择 2.2 Locale Builder 2.3 使用时区 ...

随机推荐

  1. Oulipo

    poj3461:http://poj.org/problem?id=3461 题意:求一个串在另一个串中出现的次数. 题解:直接套用KMP即可,在统计的时候做一下修改.找到之后不是直接返回,而是移动i ...

  2. BZOJ 3065 带插入区间K小值

    http://www.lydsy.com/JudgeOnline/problem.php?id=3065 思路:替罪羊树套权值线段树. 当替罪羊树某个子树大于某个比利(比例)时就暴力重构,本题时间复杂 ...

  3. 软硬大比拼 硅胶、TPU和PC材质对比

    手机保护壳的材质有很多种,目前保护壳市场上最为常见的就是硅胶.TPU.PC材质了.那么我们不禁要问,PU.硅胶.PC三材质到底有哪些区别呢?普通消费者在购买保护壳的时候能否从外表就能看出保护壳材质?P ...

  4. ajax+json数据传输

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  5. 【HDOJ】2195 Monotone SE Min

    简单DP.将[0,1]的浮点数离散化为[0,1000]的整数.最后再除以1000^2. /* 2195 */ #include <cstdio> #include <cstring& ...

  6. 常用sql语句及案例(oracle)

    目录 1)基本 2)数学函数 3)rownum 4)分页 5)时间处理 6)字符函数 7)to_number 8)聚合函数 9)学生选课 10)图书馆借阅 基本 --新建表: ) ) not null ...

  7. Delphi自定义消息应用及delphi托盘实现

    Delphi自定义消息应用及delphi托盘实现interfaceuses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...

  8. 查看Wii的系统版本信息

    Wii的系统版本信息在系统设置界面就能看到: Step1:主界面 > Wii Options Step2:选择右边的Wii Settings Step3:如下图所示,当前主机的系统版本是4.2U ...

  9. mysql二进制

    1.     从http://www.mysql.com下载二进制版的Mysql安装包     //这个MYSQL是二进制版的,不用编译 Linux (x86)        5.0.41    59 ...

  10. A - Jungle Roads - poj 1251(简单)

    想必看这道题的时候直接看数据还有那个图就能明白什么意思吧,说的已经很清楚了,每个点都有一些相连的点和权值,求出来如果连接所有点,最小的权值是多少,赤裸裸的最小生成树... ************** ...