Oracle常用数据类型


Oracle常用数据类型

在 Oracle 19c 中,有多种常见的数据类型,以下是对它们的详细介绍:

1. 字符数据类型

  • CHAR(n):
  • 存储固定长度的字符数据,长度 n 是在 1 到 2000 之间的字节数。如果存储的数据长度小于 n,则使用空格填充。
  • 示例:
CREATE TABLE char_example (
fixed_length_column CHAR(10)
);
  • 适用于存储长度已知且固定的数据,如国家代码、性别等。

  • VARCHAR2(n):

  • 存储可变长度的字符数据,长度 n 是在 1 到 4000 之间的字节数。只存储实际使用的空间,更节省空间。

  • 示例:
CREATE TABLE varchar2_example (
variable_length_column VARCHAR2(100)
);
  • 适用于存储长度不固定的数据,如姓名、地址等。

2. 数值数据类型

  • NUMBER(p, s):

  • 存储数值数据,p 是总位数(精度),范围是 1 到 38;s 是小数位数,范围是 -84 到 127。

  • 示例:
CREATE TABLE number_example (
integer_column NUMBER,
decimal_column NUMBER(10, 2)
);
  • 可用于存储各种数值,包括整数和小数,通过调整 ps 可精确控制存储范围和精度。

3. 日期和时间数据类型

  • DATE:

  • 存储日期和时间信息,包括年、月、日、时、分、秒。

  • 示例:
CREATE TABLE date_example (
date_column DATE
);
  • 适用于存储日期,如出生日期、订单日期等。

  • TIMESTAMP[(f)]:

  • 存储日期和时间信息,精度更高,可精确到小数秒,f 是小数秒的位数,范围是 0 到 9。

  • 示例:
CREATE TABLE timestamp_example (
timestamp_column TIMESTAMP(6)
);
  • 适用于需要更高时间精度的情况,如系统日志记录的时间戳。

4. 大对象数据类型

  • CLOB:

  • 存储大的字符数据,最大存储量为 4GB。

  • 示例:
CREATE TABLE clob_example (
clob_column CLOB
);
  • 适用于存储大量文本数据,如长篇文章、文档内容等。

  • BLOB:

  • 存储大的二进制数据,最大存储量为 4GB。

  • 示例:
CREATE TABLE blob_example (
blob_column BLOB
);
  • 适用于存储二进制数据,如图像、音频、视频等文件的二进制数据。

5. 其他数据类型

  • RAW(n):

  • 存储二进制数据,长度 n 是在 1 到 2000 之间的字节数。

  • 示例:
CREATE TABLE raw_example (
raw_column RAW(100)
);
  • 可用于存储需要原始二进制存储的数据,如加密数据。

  • ROWID:

  • 存储表中行的物理地址,是数据库中每行的唯一标识符。

  • 示例:
CREATE TABLE rowid_example (
rowid_column ROWID
);
  • 通常用于优化查询或作为内部标识符,用户一般不直接使用。

6. 布尔类型(使用自定义)

  • Oracle 没有内置的布尔类型,但可以使用
NUMBER(1)

CHAR(1) 

来模拟:

CREATE TABLE boolean_example (
boolean_column NUMBER(1) CHECK (boolean_column IN (0, 1))
);

或者

CREATE TABLE boolean_example (
boolean_column CHAR(1) CHECK (boolean_column IN ('Y', 'N'))
);