Oracle支持的数据类型详解

Oracle数据库支持丰富的数据类型来满足各种应用需求,其中,字符类、数字型和日期类型是最常用的三种数据类型,以下是详解:

字符类

1、CHAR

1、类型​​:定长字符串
2、​​最大长度​​:2000个字符
3、​​特点​​:
●存储时如果数据长度不足,会用空格填充至指定长度
●示例:CHAR(10)存储"小韩"会占用10个字符("小韩"加6个空格)
●查询效率较高,适合长度固定或查询频繁的字段
●会浪费存储空间,当实际数据长度经常小于定义长度时

2、VARCHAR2

1、类型​​:变长字符串
​​2、​​最大长度​​:4000个字符
​​3、​​特点​​:
●只占用实际数据长度+长度标识的空间
●示例:VARCHAR2(10)存储"小韩"只占用3个字符(2个汉字+1个长度标识)
●节省存储空间,实际存多少用多少,适合长度变化较大的字段
●频繁修改且每次修改长度不同时可能导致"行迁移",影响性能

3、CLOB

​​1、类型​​:字符型大对象
​​2、​​最大容量​​:4GB
​​3、特点​​:
●用于存储超大文本数据
●适合存储长文章、XML文档等

数字类

1、NUMBER

​​1、范围​​:-10³⁸ 到 10³⁸
​​2、特点​​:
●可以表示整数和小数
●灵活的精度定义方式

2、NUMBER(p,s)

​​​​1、格式​​:NUMBER(精度,小数位数)
​​​​2、示例​​:
●NUMBER(5,2):总位数5位,小数2位,范围-999.99到999.99
●NUMBER(5):5位整数,范围-99999到99999
3、特点​​:
●精度(p)表示有效数字总位数
●小数位数(s)表示小数点后的位数
●当s为负数时,表示四舍五入到小数点左侧的位数

日期时间类

1、DATE

​​1、包含​​:年、月、日、时、分、秒
​​2、默认格式​​:'1-1月-1999'(DD-MON-YYYY)
​​3、特点​​:
●精确到秒
●支持日期计算和格式化输出

1、TIMESTAMP

​​​​1、扩展功能​​:Oracle 9i对DATE的扩展
​​​​2、精度​​:可精确到毫秒
​​​​3、特点​​:
●比DATE类型更精确
●适合需要高精度时间记录的场合

二进制(BLOB)

​​​​1、类型​​:二进制大对象
​​​​2、最大容量​​:4GB
​​​​3、用途​​:
●存储图片、声音、视频等二进制数据
●实际项目中通常只存储文件路径而非文件本身
●高安全性要求时才直接存储文件内容

使用建议

1、​​CHAR 和 VARCHAR2 选择​​

●优先考虑VARCHAR2以节省空间
●当字段长度固定或查询性能要求高时使用CHAR
●避免频繁修改长度变化的VARCHAR2字段以防止行迁移
​​
2、大对象存储​​

●通常建议存储文件路径而非文件内容
●只有高安全性要求时才使用BLOB/CLOB直接存储

3、数字类型​​

●根据业务需求合理设置精度和小数位数
●过大的精度设置会浪费存储空间

​​4、日期类型​​

●需要毫秒级精度时使用TIMESTAMP
●一般日期时间使用DATE即可

这些数据类型的选择应根据具体业务需求、性能要求和存储考虑进行权衡,以达到最优的数据库设计效果。

建表举例

创建一张名为 test_20250715 的表,包含以下信息:

create table test_20250715
(
  usr_no VARCHAR2(20),
  amt    NUMBER(20,10)
)
图片[1]-Oracle支持的数据类型详解-十一张
温馨提示:本文最后更新于2025-10-27 10:57:17,某些文章具有时效性,若有错误或下载地址失效,请在文末评论区留言
© 版权声明
THE END
如果觉得这篇文章对您有帮助,可以收藏本网址,方便下次访问!
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容