欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle中的基础数据类型

程序员文章站 2022-09-03 18:50:53
一,字符型CHAR - 定长字符类型,单位可以使用字节数或字符数。例如:CHAR(2 BYTE) -- 长度为2个字节CHAR(2 CHAR) -- 长度为2个字符,具体占几个字节还要看编码。比如存储双字节的汉字,则实际长度是4个字节。CHAR(2) -- 不指定则表示长度为2个字节VARCHAR/VARCHAR2varchar和varchar2在Oracle里是同义词,但是Oracle建议使用VARCHAR2。变长字符类型,和char类似,其单位可以使用字节数或字符数。VARCHAR2(2...

一,字符型

CHAR - 定长字符类型,单位可以使用字节数或字符数。例如:

CHAR(2 BYTE) -- 长度为2个字节
CHAR(2 CHAR) -- 长度为2个字符,具体占几个字节还要看编码。比如存储双字节的汉字,则实际长度是4个字节。
CHAR(2) -- 不指定则表示长度为2个字节

VARCHAR/VARCHAR2
varchar和varchar2在Oracle里是同义词,但是Oracle建议使用VARCHAR2。变长字符类型,和char类似,其单位可以使用字节数或字符数。

VARCHAR2(25 BYTE) -- 最大可存储字符长度为25字节
VARCHAR2(25 CHAR) -- 最大可存储字符长度为25字符,具体长度看编码
VARCHAR2(25) -- 最大可存储字符长度为25字节

NCHAR/NVARCHAR2 - 保存定长的unicode字符,因此其单位默认是字符数。

ROWID - 每个Oracle都有一个名为rowid的伪列,用来存放每一行数据的存储地址的二进制值,由18个字符组合表示。

二,数字类型
注意数据库中的数字类型和ISO标准略有不同。

NUMBER
NUMBER是Oracle中的数字类型,可以用来存储浮点数或整数:
NUMBER(精度,刻度)
精度 – 表示所允许的值的总长度,也就是数值中所有数字位的个数。最大精度是38,也就是说最多存储38个数字。如果不指定精度,则默认为38。
刻度 – 小数点右边的数字位的个数。
例如:

NUMBER(4,3) -- 可用于存储3.142这样的数值,如果赋值超出了变量的精度,则自动四舍五入。例如将3.1415926赋值给NUMBER(4,3) ,则存储的是3.142
NUMBER(3) -- 可用于存储3这样的整数,相当于NUMBER(3,0)

而我们常见的int,smallint,decimal,float等类型,其实是number的子类型,用于和ANSI兼容。包括decimal,int,smallint,float等等,这里介绍float和decimal。

FLOAT

float(n) – float是浮点数(floating-point number)类型,因此它不是精确值,不能精确表达所有小数。在Oracle中n表达的是二进制的精度,范围最大到126,等同于十进制的38。
real等同于float(63),而double precision等同于float(126)。

DECIMAL和NUMERIC

Decimal和numeric是同义词,它们是定点数(fixed-point numbers)类型,因此可以表达精确值。
decimal(精度,刻度) – 精度和刻度的意义和上文number类型相同。

decimal可以和整数直接运算,但是不能和float直接运算。因为decimal是精确的,而float是不精确的。

三,时间类型

与MSSQL以及MySQl不同,Oracle存储时间不是从1900年开始到现在的整数。

Date

用于存储日期和时间信息,包含世纪,年,月,日,小时,分钟和秒,但是不包含秒的小数部分,也就是不能表达毫秒微秒。

2011-08-01 06:08:05
select SYSDATE-2 from DUAL; -- 返回两天前同一时间。该类型与整数的加减运算,实际上是对天数的加减。

用TO_DATE()和TO_CHAR()做Date和字符串之间的类型转换。

TIMESTAMP

Timestamp与date相同,只是包含的时间信息是年,月,日,小时,分钟,秒以及秒的小数部分。因此需要存储精确到毫秒微秒的时间信息时,需要使用timestamp,默认精确到微秒。

2011-08-01 06:08:05.000

四,布尔型
BOOLEAN
可能的值为true,false和null。很简单,不详述了。

本文地址:https://blog.csdn.net/OnlyQi/article/details/108975954

相关标签: Oracle