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、用途:
●存储图片、声音、视频等二进制数据
●实际项目中通常只存储文件路径而非文件本身
●高安全性要求时才直接存储文件内容
使用建议
●优先考虑VARCHAR2以节省空间
●当字段长度固定或查询性能要求高时使用CHAR
●避免频繁修改长度变化的VARCHAR2字段以防止行迁移
●通常建议存储文件路径而非文件内容
●只有高安全性要求时才使用BLOB/CLOB直接存储
●根据业务需求合理设置精度和小数位数
●过大的精度设置会浪费存储空间
●需要毫秒级精度时使用TIMESTAMP
●一般日期时间使用DATE即可
这些数据类型的选择应根据具体业务需求、性能要求和存储考虑进行权衡,以达到最优的数据库设计效果。
建表举例
创建一张名为 test_20250715 的表,包含以下信息:
create table test_20250715
(
usr_no VARCHAR2(20),
amt NUMBER(20,10)
)
![图片[1]-Oracle支持的数据类型详解-十一张](https://www.11zhang.com/wp-content/uploads/2025/07/0d0154fa8920250715230216.png)
2025-10-27 10:57:17,某些文章具有时效性,若有错误或下载地址失效,请在文末评论区留言




















暂无评论内容