Oracle --- 数据类型

一)数据类型的分类
Oracle支持的数据类型可以分为四个基本种类:字符数据类型、数字数据类型、日期数据类型以及表示其它数据的数据类型。
属于字符数据类型的有: char/varchar/varchar2/nvarchar/nvarchar2/long
属于数字数据类型的有: number
属于日期数据类型的有: date/timestamp
属于其它数据类型的有: raw/long raw/rowid/CLOB/NCLOB/BLOB/BFILE

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

[b]2)varchar[/b]
[b]varchar是长度不固定的[/b],比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。
varchar同样区分中英文

[b]3)varchar2[/b]
varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,[b]varchar2用null代替varchar的空字符串[/b]

[b]varchar/varchar2适用于长度不固定的,一般不含中文的情况 [/b]

[b]4)nvarchar[/b]
nvarchar是长度不固定的
nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是[b]字符数[/b]而不是字节数

[b]5)nvarchar2[/b]
nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节

[b]nvarchar/nvarchar2适用于存放中文[/b]

[b]6)long[/b]
LONG数据类型可以存放2GB的字符数据,它是从早期版本中继承来的。现在如果想存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。在表和SQL语句中使用LONG类型有许多限制。所以已经不大推荐使用了。

三)数字数据类型
Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
NUMBER数据类型可以有两个限定符,如:
column NUMBER (precision, scale)
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

四)日期数据类型
[b]1)date[/b]
可以存储月,年,日,世纪,时,分和秒。度量粒度是秒

[b]2)timestamp[/b]
它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。
to_char函数支持date和timestamp

五)其它数据类型
[b]1)raw[/b]
用于存储基于字节的数据,最多能存储2000个字节,它没有默认大小,所以在使用时要指定大小,可以建立索引。

[b]2)long raw[/b]
用于存储可变长度的二进制数据,最多能存储2GB,它受的限制和LONG类型一样

[b]3)rowid[/b]
ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。Oracle数据库中每行都有一个伪列。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。
ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务 中使用ROWID伪列的值。例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID.不能通过任何SQL语句来设置标准的ROWID伪列的值。
列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID.

[b]4)BLOB[/b]
它可以存储较大的二进制对象;如图形,音视频剪辑。

[b]5)CLOB[/b]
一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节

[b]6)NLOB[/b]
一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集

[b]7)BFILE[/b]
包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值