目录
- 数值类型
- 字符类型
-
- CHAR(size):定长字符数据。
- VARCHAR2(size):可变长字符数据
- [LONG:可变长字符数据,最大可达到 2G](#LONG:可变长字符数据,最大可达到 2G)
- [NCHAR [( size )] 类型](#NCHAR [( size )] 类型)
- [NVARCHAR2( size )](#NVARCHAR2( size ))
- LOB类型(二进制类型)
- 二进制类型
-
- ROW ( size )
- [LONG ROW](#LONG ROW)
- 补充
- 日期时间类型
-
- DATE:日期型数据
- [TIMESTAMPL ( p ):时间戳](#TIMESTAMPL ( p ):时间戳)
- [DATETIME 和 TIMESTAMP 区别?](#DATETIME 和 TIMESTAMP 区别?)
- 行类型
数值类型
-
NUMBER(pL,s):数值类型
- pL:指定数字的总位数
- s:指定数字小数点后的位数
-
可以存储0、正数和负数,数值的绝对值为10-o~10。
-
NUMBER 类型数据占用1~22B的存储空间。
-
p 表示数值的总位数(精度),默认值为38;
-
s 表示刻度,取值为一84~127, s 为正数时表示保留小数的位数, s 为负数时表示对小数点左侧 s 位进行舍人,默认值为0。
例如:
- NUMBER(5),最大可存储的数值为 99999。
- NUMBER(5,2),最大可存储的数值为 999.99。
- NUMBER(18) ,默认长度 18 位
字符类型
CHAR(size):定长字符数据。
- size:指定字符串的最大长度(必须是正整数,且不超过 32767)。
- 用于存储固定长度的字符串。参数 size 规定了字符串的最大长度,可选关键字 BYTE 或 CHAR 表示其长度单位是字节或字符,默认值为1B,允许最大长度为2000B。
- 如果 CHAR 类型的列中实际保存的字符串长度小于指定的 size 大小, Oracle 将自动使用空格填满。
VARCHAR2(size):可变长字符数据
- size:指定字符串的最大长度(必须是正整数,且不超过 32767)。
- 用于存储可变长度的字符串。
- 参数size 规定了字符串的最大长度,可选关键字 BYTE 或 CHAR 表示其长度单位是字节或字符,默认单位为 BYTE ,允许字符串的最大长度为4000B。
- 与 CHAR 类型不同,当VARCHAR2类型的列中实际保存的字符串长度小于 size 时,将按字符串实际长度分配空间。
LONG:可变长字符数据,最大可达到 2G
- 大文本类型,用于存储变长字符串,最大长度为2GB。这是为了与早期版本兼容而保留的字符类型。
- 在其它的数据库系统中常被称为 备注类型
- 它主要用于存储大量的可以在稍后返回的文本内容
NCHAR [( size )] 类型
- 用于存储多字节编码( UNICODE )的定长字符串。
- 参数 size 指定了字符串的最大字符数。
- 如果字符采用AL16UTF16编码,存储容量可以提高2倍,
- 如果采用UTF8编码,存储容量可以提高3倍。
- size 的取值最大为2000B,默认为1。
NVARCHAR2( size )
- 用于存储多字节编码( UNIcoDE )的变长字符串。
- 参数 size 指定了学符串的最大字符数,最大为4000B。
LOB类型(二进制类型)
CLOB:字符数据+
- 存储字符,最大可以存4G
- 用于存储单字节或多字节的大型字符串对象,支持使用数据库字符集的定长或变长字符。
- 在 Oracle 12c中 CLOB 类型最大存储容量为128TB。
BLOB:二进制数据
- 存储图像、声音、视频等二进制数据,最大可存4G
- 用于存储大型的、未被结构化的变长的二进制数据,如二进制文件、图片文件、音频和视频等非文本文件。
- 在 Oracle 12c中 BLOB 类型最大存储容量为128TB。
BFILE:二进制数据
- 用于存储指向二进制格式文件的定位器,该二进制文件保存在数据库外部的操作系统中。
- 在 Oracle 12c中 BFILE 文件最大容量为128TB,不能通过数据库操作修改 BFILE 定位器所指向的文件。
二进制类型
ROW ( size )
- 用于存储变长的二进制数据, size 表示数据长度,取值范围为1~2000B。
LONG ROW
- 用于存储变长的二进制数据,最大存储数据量为2GB。
- Oracle 建议使用 BLOB 类型代替 LONG RAW 类型。
补充
- LONG RAW 数据类型在其它数据库系统中,常被称为 大二进制类型(BLOB) ,它可以用来存储 图形、声音视频数据。
- 尽管关系型 数据库 管理系统最初不是为它们而设计的,但是多媒体数据可以存储在 BLOB 或 LONG RAW 类型的字段内。
日期时间类型
DATE:日期型数据
- 用于定义日期时间类型的数据。
- 其数据长度为固定 7 个字节,分别描述:年、月、日、时、分、秒
- 日期时间型,精确到秒。用于存储日期和时间。
- 可以存储的日期范围为公元前4712年1月1日到公元后9999年12月31日,占据7B的空间,由世纪、年、月、日、时、分、秒组成。
TIMESTAMPL ( p ):时间戳
- 还可以 显示时间 和 上下午标记。
- 如:11-9月-2007 11:09:32.213 AM
- 精确到秒的小数点后9位。
- 表示时间戳,是 DATE 数据类型的扩展,允许存储小数形式的秒值。
- p 表示秒的小数位数,取值范围为0~9,默认值为6。
- 根据 p 值的设置不同, TIMESTAMP 类型数据占据7~11B空间,由世纪、年、月、日、时、分、秒组成,如30-MAY-1207.56.07.544000PM。
DATETIME 和 TIMESTAMP 区别?
- 都是既有 日期 又有 时间 的日期类型
- DATETIME 需要使用外部传入的日期,如果没传这个值就是 NULL
- TIMESTAMP 会使用 系统当前的时间 作为这个值的 默认值
行类型
ROWID
- 行标识符,表示表中行的物理地址的伪劣类型。
- ROWID 类型数据由18位十六进制数构成
- 其中1-6位表示对象编号,
- 7-8位表示文件编号,
- 9-15位表示数据块编号,
- 16-18位表示数据块内编号。
- 十六进制串,表示行在所在的表中唯一的行地址
- 该数据类型主要用于返回 ROWID 伪列,常用在可以将表中的每一条记录都加以唯一标识的场合