Oracle内置数据类型
一.Varchar(size)和NVarchar(size)变长数据类型
size:最多可容纳的字符数。默认值和最小值都是1,最大值为400字符。size必须定义。
二.Char(size)和NChar(size)定长字符型数据
默认值和最小值都是1,最大值为2000字符。
- 这里的N:national(国家的),包含了全球范围内的各种字符,包括不同语言的字符、符号、表情符号等。使用 Unicode 字符集可以在数据库中存储和处理多种语言的字符数据,实现跨语言、跨地域的应用。表示支持 Unicode 编码集。
三.Data:日期型数据
取值范围是从公元前4712年1月1日到公元9999年12月31日。另外还有其他表示时间的数据类型。
比如:
- timesatmp:除了包含日期之外还包括了多达小数点后9位的秒数。
- timesatmp with time zone。
- timesatmp with local time zone。
四.number(p,s):数字型数据
“p” 表示总位数,“s” 表示小数位数。
- 总位数(p):它指定了数字的总位数,包括整数和小数部分。总位数可以是 1 到 38 之间的整数。较小的总位数会限制存储的数字的范围,而较大的总位数可以支持更大的数字。总位数包括整数部分和小数部分。
- 小数位数(s):它指定了数字的小数位数。小数位数表示数字的精度或小数部分的位数。小数位数可以是 0 到 p 之间的整数。如果小数位数为 0,那么存储的数字将是整数。小数位数为正数时,表示存储的数字具有小数部分。
CLOB(Character Large Object)和 NCLOB(National Character Large Object)是用于存储大文本数据的数据类型。
CLOB 数据类型:用于存储可变长度的字符数据,适用于包含较大文本内容的列。它可以存储最大为 4 GB 的字符数据。CLOB 字段可以包含任意长度的文本,如长文本、大段落、文章等。
NCLOB 数据类型与 CLOB 类似,但专门用于存储国家字符集(如 Unicode)的大文本数据。它支持存储最大为 4 GB 的 Unicode 字符数据。NCLOB 主要用于存储包含非 ASCII 字符的文本数据,如多语言文本、特殊字符、表情符号等。
BLOB(Binary Large Object):数据类型,用于存储二进制数据,如图像、音频、视频或任何其他非文本数据。
由于clob和blob数据类型的一些列操作不能通过oracle数据库命令来操作,所以新增了DBMS_LOG的PL/SQL软件包来维护LOB数据类型的列。
BFILE 是一种特殊的数据类型,用于存储大型二进制文件的引用。
BFILE 数据类型通常用于存储较大的二进制文件,例如图像、音频、视频或其他大型文件。它提供了一种在数据库中管理和访问外部文件的方式,同时避免了将整个文件存储在数据库中的开销和限制。
以下是一些关于 BFILE 数据类型的重要特点和用法:
- 存储引用:BFILE 列存储的是指向外部文件的引用,而不是实际的文件内容。引用包括文件的目录和文件名,允许在数据库中定位和访问文件。
- 外部文件:BFILE 列引用的文件通常存储在数据库服务器之外的文件系统中,例如操作系统的文件系统。这意味着 BFILE 数据类型可以访问和管理非数据库服务器上的文件。
- 访问权限:为了访问和操作 BFILE 数据类型,数据库用户需要适当的文件系统访问权限。数据库用户需要在数据库服务器上具有读取和写入外部文件的权限。
- 操作和访问:使用特定的 SQL 函数和操作,可以通过 BFILE 数据类型执行诸如读取、写入、复制、移动和删除等操作。通过这些操作,可以对外部文件进行访问和管理。
为了提高效率,oracle还提供了RAW数据类型。
RAW数据类型:用于存储原始的二进制数据。它可以存储固定长度的二进制数据,最长可以达到 2000 字节。RAW 数据类型与其他数据类型(如 VARCHAR2 和 NUMBER)不同,它存储的是二进制数据,而不是字符数据。这使得 RAW 数据类型非常适合存储和处理原始的二进制数据,如加密密钥、图像数据、音频数据等。
RAW 数据类型的一些特点和用法:
- 固定长度:RAW 数据类型存储的二进制数据具有固定的长度,这意味着在定义 RAW 列时需要指定长度。长度可以在 1 到 2000 字节之间。
- 存储和检索:可以使用 SQL 语句来存储和检索 RAW 数据类型的值。在插入和更新操作时,可以使用字面值或表达式来指定 RAW 值。在查询操作时,可以使用 SQL 查询语句来检索 RAW 值。
- 二进制数据处理:RAW 数据类型适用于存储和处理原始的二进制数据。它提供了一种在数据库中存储和操作二进制数据的方式。可以使用编程语言和数据库驱动程序来处理 RAW 数据类型的值,进行加密、解密、处理和转换等操作。
在日常开发中,以上数据类型基本够用了。