数据库表中数据类型
A. 数据库中数据类型有哪些
Character 数据类型
Character 数据类型用来存储字母数字型数据。当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。ORACLE提供以下几种character 数据类型:
CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。
当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息。
VARCHAR() varchar型数据是varchar2型数据的快照。
VARCHAR2() varchar2数据唤巧类型是一种可变长度的、有最大长度的字母数字型数据。Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达到32676字节。
一个空的varchar2(2000)字段和一个空的varchar2(2)字段所占用的空间是一样的。
NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()数据类型分别与CHAR() 和 VARCHAR2()类型是相同的,只不过它们用来存储NLS(National Language Support)数据。
LONG LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。它将被LOB(Large Object)数据类型所代替。
比较规则 Varchar2和char数据类型和差键根据尾部的空格有不同的比较规则。对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空庆宴格的要大些。比如:
Char 型数据: ‘YO’=‘YO’
Varchar2型数据:‘YO’<’YO’
Numberic 数据类型
Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-1*10-103 和9.99999*10125之间,有38位的精确度。标识一个数据超出这个范围时就会出错。
Number(
) Number数据类型存储一个有p位精确度的s位等级的数据。
DATE 数据类型
DATE 数据类型用来存储日期和时间格式的数据。这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。以下的几种信息都包含在DATE数据类型中:
Century
Year
Month
Day
Hour
Minute
Second
LOB 数据类型
LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。LOB数据的控制通过DBMS_LOB 包实现。BLOB, NCLOB, 和CLOB 数据可以存储到不同的表空间中,BFILE存储在服务器上的外部文件中。LOB数据类型有以下几种:
BLOB: 二进制数据
CLOB: 字符型数据
BFILE: 二进制文件
其他数据类型
ROWID ROWID 数据类型是ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。
B. ORACLE的常见数据类型
ORACLE数据库提供了多种数据类型,以满足不同场景下的数据存储需求。以下是ORACLE中常见的字段类型及其描述:
- CHAR: 固定长度字符串,最大长度2000字节,适用于需要固定长度的字符数据。
- VARCHAR2: 可变长度字符串,最大长度4000字节,支持索引,可存储各种字符,长度根据实际数据自适应。
- NCHAR/NVARCHAR2: 分别是根据字符集的固定/可变长度字符串,最大长度与VARCHAR2类似。
- DATE: 日期类型,表示日-月-年,格式DD-MM-YY(HH-MI-SS),无千虫问题。
- LONG/LONG RAW: 分别用于存储长字符串和二进制数据,最大长度可达2GB,但不支持索引,未来将被BLOB/CLOB/NCLOB取代。
- BLOB/CLOB/NCLOB: 大型对象数据类型,用于存储大文本或非文本文件,最大长度4GB,支持读写操作。
- NROWID: 二进制数据表中记录的唯一行号,格式10 bytes。
- NUMBER: 数值类型,包括P,S参数,如NUMBER(5,2)表示最多5位数,2位小数。
- INTEGER/FLOAT/REAL: 整数、浮点数和精度更高的实数类型。
- RAW/BFILE: 分别为固定和外部存储的二进制数据,各有最大长度限制。
根据实际应用场景,选择合适的数据类型对于优化数据库性能和数据存储至关重要。