一、数字类型
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;