数据类型

来源:互联网 发布:分类决策树算法 编辑:程序博客网 时间:2024/05/17 04:01

1 数值型

     

     用来保存浮点型数字与整数的主要数据类型是number。它是一种可变长的数据类型。这意味着可以通过指定精度与标度来精确地保存数据。无论何时,用来保存整数,或完全精确没有必要,重要的是通过指定刻度来节约空间。

 

createtable t (n1number,n2number)

insertinto tvalues(1/3,1/3)

commit;

 

SQL> select * from t;

 

        N1         N2

---------- ----------

0.33333333 0.33333333

 

 

由于内部格式是独有的,cpu无法直接处理,反之,它们由oracle的内部库函数来处理。由于这个原因,当进行number-crunching加载时,number类型并非很有效。为了解决这个问题,在oracle 10g中引入了两种新的数据类型:binary_floatbinary_double。相对于number类型,它们有两个优势。

  第一:它们实现了IEEE754标准,所以cpu可以直接处理它们。第二:它们是固定长度的数据类型。

 

 

SQL> create table t (n1 binary_float,n2 binary_float);

 

Table created

 

SQL>

SQL> insert into t values(1/3,1/3)

  2  ;

 

1 row inserted

 

SQL> commit;

 

Commit complete

 

 

2.       字符串类型

 

  有三种基本的数据类型可用来保存字符串,即varchar2charclobVarchar2char最多分别支持40002000个字节的数据(注意,最大长度指的是字节,而不是字符)。在oracle 9i中,clob最多支持4GB,在oracle 10g中可以支持更多。 Varchar2char的主要区别是,前者是可变长度的,而后者是固定长度的。这意味着char提供更好的性能。Clob只应该被使用在字符串可能会大于varchar2的最大长度的情况下。在oracle 11g中,clob有两种存储方法-基本文件(basicfile)和安全文件(securefile)。为了达到更好的性能,应该选择使用安全文件类型。

 

 这三种数据类型都是依照数据库字符集来保存字符串。另外,还有其他三种数据类型-nchar2ncharnclob,都是依照国家字符集(在数据库级别定义定义的第二种unicode字符集)来保存字符串。这三种数据类型与它们的同名的基本类型有着同样的特征。只是它们的字符集是不同的。

 

 Long是另外一种字符串数据类型,由于clob的出现,已经不推荐使用它了。最好不要使用,提供它只是为了向后兼容而已。。

 

 

3.       日期时间型

 可以用来保存日期时间型数据的数据类型为Datetimestamptimestamp with time zonetimestamp with local time zone。所有这些类型都保存以下信息:年、月、日、小时、分、秒。这部分的长度为固定7个字节。基于timestamp的三种数据类型也可能会保存秒的小数部分(0-9位的数字,默认6位)。这一部分是变长的:0-4个字节。最后,timestamp with time zone使用另外2个字节保存时区(time zone)信息。由于所有这些类型都是保存不同的信息,最适合的数据类型是能够满足数据保存需要且占用空间的最小的那一个。

 

4.       位串型

 

  有两种数据类型用来保存位串(bit string),即rawBloBRAW最多支持2000个字节。BLOB应该只是在位串的长度可能超过2000个字节的时候才使用。在oracle 11g中,BLOB有两种存储方式,即基本文件(basicfile)和安全文件(securefile.为了获得更好的性能,应该使用安全文件格式。

 

 

 

 

 

原创粉丝点击