Oracle数据类型 | 说明 | |
字符型 | CHAR [(size)] | 定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节 char的存储方式是,对英文字符(ASCII) 占用1个字符 对于汉子占用两个字符 varchar的存储方式是,英文占用2个字符,汉字也占用两个字符 注意:数据库的NLS_CHARACTERSET 为AL32UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节。 |
NCHAR类型 | 这是一个包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2,000字节的信息。它的最大长度取决于国家字符集。 | |
VARCHAR2(size) | 可变长度字符数据(必须指定最大字符数:最小字符数是 1;最大字符数是 4000) | |
NVARCHAR2类型 | 这是一个包含UNICODE格式数据的变长字符串。 NVARCHAR2最多可以存储4,000字节的信息。 | |
数字型 | NUMBER [(p,s)] | 数字,精度为 p,刻度范围为 s (p 是小数数字的总长度,s 是小数点右边的数字长度;p 的范围从 1 到 38,s 的范围从-84 到 127) 精度是数值中所有数字位的个数, 而刻度范围是小数点右边的数字的个数 |
INTEGER类型 | INTEGER是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。 | |
BINARY_FLOAT | BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少6位精度,每个 BINARY_FLOAT 的值需要 5 个字节,包括长度字节 | |
BINARY_DOUBLE | BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE 的值需要 9 个字节,包括长度字节。 | |
FLOAT类型 | Float(n),数 n 指示位的精度,可以存储的值的数目。N 值的范围可以从 1 到 126。若要从二进制转换为十进制的精度,请将 n 乘以 0.30103。要从十进制转换为二进制的精度,请用 3.32193 乘小数精度。126 位二进制精度的最大值是大约相当于 38 位小数精度 | |
时间类型 | DATE | 日期和时间值,从公元前 4712.1.1 到公元 9999.12.31 DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。 |
TIMESTAMP类型 | 这是一个7字节或12字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位(跟date的区别,就是带小数) | |
TIMESTAMP变种类型 | timesatamp with time zone类型 这是TIMESTAMP类型的变种,它包含了时区偏移量的值 timestamp with local time zone 当别的用户访问数据库时oracle会自动将该时间转换成当前客户端的时间 | |
INTERVAL YEAR[ (years_precision)] TO MONTH | 存储一个时间间隔,其单位为年和月;可以通过指定可选的years_precision参数来指定年的精度,该参数是一个0~9的整数。默认的精度为2,意思是可以在时间间隔中为年数存储两位数字。如果试图向表中添加一行年数超过INTERVAL YEAR TO MONTH列可以存储的记录,就会返回一个错误。时间间隔既可以存储正数,也可以存储负数 | |
INTERVAL DAY[(days_precision)] TO SECOND[( seconds_precision)] | 存储一个时间间隔,其单位为天和秒;可以通过指定可选的days_precision参数来指定天的精度,该参数是一个0~9的整数,默认值为2。另外,还可以通过指定可选的seconds_precision参数来指定秒的小数部分的精度,该参数是一个0~9的整数,默认值为6。时间间隔既可以存储正数,也可以存储 | |
LOB类型 | CLOB类型 | 最大 4G 的字符数据 它存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集。CLOB对象可以存储最多 (4 gigabytes-1) * (database block size) 大小的字符 |
NCLOB 数据类型 | 它存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,NCLOB对象可以存储最多(4 gigabytes-1) * (database block size)大小的文本数据。 | |
BLOB | 二进制数据,最大 4G 它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。BLOB对象最多存储(4 gigabytes-1) * (database block size)的二进制数据。 | |
BFILE | 二进制数据存储在一个外部文件中;最大到 4G 二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理 | |
RAW & LONG RAW类型 | LONG | 最大 2G 的可变长度字符数据。 2GB是指2千兆字节, 而不是2千兆字符 与VARCHAR2 或CHAR 类型一样,存储在LONG 类型中的文本要进行字符集转换。ORACLE建议开发中使用CLOB替代LONG类型。支持LONG 列只是为了保证向后兼容性 1.一个表中只有一列可以为LONG型。(Why?有些不明白) 2.LONG列不能定义为主键或唯一约束, 3.不能建立索引 4.LONG数据不能指定正则表达式。 5.函数或存储过程不能接受LONG数据类型的参数。 6.LONG列不能出现在WHERE子句或完整性约束(除了可能会出现NULL和NOT NULL约束) |
RAW(size) | 原始二进制数据 (必须指定最大长度,最大长度为 2000) | |
LONG RAW | 可变长度原始二进制数据,最大 2G | |
ROWID & UROWID类型 | ROWID | 十六进制串,表示行在所在的表中唯一的行地址。该数据类型主 要用于返回 ROWID 伪列 |
Oracle数据类型介绍
于 2022-11-04 19:53:55 首次发布