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)
);
- 可用于存储各种数值,包括整数和小数,通过调整
p
和s
可精确控制存储范围和精度。
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'))
);