您的位置:

Oracle字段类型详解

一、数字类型

Oracle中的数字类型可以分为固定精度和浮点数类型。

固定精度类型包括:

  • NUMBER(p, s):p表示位数,s表示小数点位数,精度范围为1 ~ 38。如果s未指定,则默认为0。
  • DECIMAL(p, s):与NUMBER类型相同,但DECIMAL在Oracle中不建议使用。
  • INTEGER:有符号整数,范围为-2147483648 ~ 2147483647。
  • BINARY_INTEGER:不使用符号的整数,范围为-2147483648 ~ 2147483647。

浮点数类型包括:

  • FLOAT(p):p为二进制位数,Oracle支持的最大位数是126。FLOAT类型的范围是从-3.4E38到+3.4E38。
  • REAL:单精度浮点,精度为7位。
  • DOUBLE PRECISION:双精度浮点,精度为15位。

二、字符类型

Oracle中的字符类型可以分为固定长度和可变长度两种。

固定长度字符类型包括:

  • CHAR(size):size表示字符串的长度,它与VARCHAR2不同,它总是占用预定义的空间,而不受内容的长度而变化。
  • NCHAR(size):表示Unicode字符集中字符的固定长度字符串。

可变长度字符类型包括:

  • VARCHAR2(size):size表示最大字符串长度,VARCHAR2会根据存储的内容来动态地分配空间。
  • NVARCHAR2(size):表示Unicode字符集中字符的动态字符串。

三、日期和时间类型

Oracle中的时间和日期类型包括:

  • DATE:包括日期和时间,精度为秒。
  • TIMESTAMP[(fractional_seconds_precision)]:包括日期和时间,精度可以高达9位。
  • INTERVAL YEAR TO MONTH:表示两个日期之间的月数差。
  • INTERVAL DAY TO SECOND[(fractional_seconds_precision)]:表示两个日期之间的天数、小时数、分钟数和秒数。

四、LOB类型

Oracle中LOB(Large Object)类型可以分为BLOB、CLOB、NCLOB三种。

  • BLOB:二进制数据类型,用于存储二进制文件,如图像、音频、视频等。
  • CLOB:字符数据类型,用于存储字符大对象,如大文本、大XML文件等。
  • NCLOB:NCHAR字符数据类型,用于存储存NCHAR类型数据的字符大对象。

五、代码示例

-- 创建表时指定字段类型
CREATE TABLE test_table (
    id NUMBER(10),
    name VARCHAR2(20),
    birthday DATE,
    profile CLOB
);

-- 插入数据
INSERT INTO test_table (id, name, birthday, profile) VALUES (1, '张三', '1990-01-01', '这是一篇测试文章。');

-- 查询数据
SELECT * FROM test_table WHERE id = 1;