Oracle 数据库常见字段类型大全及详细解析
在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。
文章目录
- 一、字符类型(Character)
- 1、CHAR:定长字符数据类型
- 2、VARCHAR2:变长字符数据类型
- 3、NCHAR:存储Unicode字符集的固定长度字符串
- 4、NVARCHAR2:存储Unicode字符集的可变长度字符串
- 二、数值类型(Numeric)
- 1、NUMBER:用于存储整型或浮点型数值。
- 2、INTEGER 或 INT :整数类型
- 3、FLOAT:浮点数类型
- 4、REAL:实数类型
- 三、日期和时间类型(Date and Time)
- 1、DATE:存储日期和时间,精确到秒
- 2、TIMESTAMP:时间戳数据类型
- 3、INTERVAL:用于表示两个时间点之间的时间间隔
- 四、二进制大对象类型(Binary Large Object)
- 1、BLOB:存储二进制对象
- 2、CLOB:存储大文本数据
- 3、NCLOB:存储Unicode字符集的字符大对象
- 五、其他类型
- 1、RAW:存储原始二进制数据
- 2、LONG:存储超长字符串数据
- 3、LONG RAW:存储可变长度的二进制数据
- 4、ROWID:用于唯一标识数据库中的行
- 5、BFILE:在数据库外部存储大型二进制对象文件
- 6、BOOLEAN:布尔类型
- 7、XML:用于存储XML文档数据。
- 8、用户自定义类型(User Defined Type)
- 六、数据类型选择的注意事项
- 1、字符类型
- 2、数值类型
- 3、日期和时间类型
一、字符类型(Character)
1、CHAR:定长字符数据类型
存储固定长度的字符串,最大长度为2000字节,如果存储的字符串长度小于定义的长度,Oracle会自动用空格填充至指定长度。
CREATE TABLE example_table (example_column CHAR(10)
);
使用 CHAR(n)
是存储长度固定为 n
个字节,如果存储的数据长度小于 n
,则使用空格填充,n
的取值范围是 1 到 2000。当插入数据时,example_column
列将始终占用 10 个字节的存储空间,无论实际存储的字符长度是多少。
2、VARCHAR2:变长字符数据类型
存储可变长度的字符串,最大长度为4000字节,该类型在实际使用中非常灵活,因为它只占用实际字符串所需的存储空间,而不需要额外的空格填充。
CREATE TABLE example_table (example_column VARCHAR2(20)
);
此列仅存储实际输入字符所需的字节数,最大不超过 20 个字节,最大长度为 n
个字节。n
的取值范围是 1 到 4000。
3、NCHAR:存储Unicode字符集的固定长度字符串
存储 Unicode 字符集的固定长度字符串,最大长度为2000字节(在某些版本中可能为1000字节),适用于需要存储国际化字符集的数据。
CREATE TABLE example_table (nchar_column NCHAR(10)
);
定义一个长度为 10 的 NCHAR 类型的列,用于存储定长的 Unicode 字符数据。存储的字符将根据数据库的国家字符集进行编码,通常用于存储多语言数据。
4、NVARCHAR2:存储Unicode字符集的可变长度字符串
存储 Unicode 字符集的可变长度字符串,最大长度为4000字节(在某些版本中可能为1000字节),同样适用于国际化字符集的数据存储。
CREATE TABLE example_table (nvarchar2_column NVARCHAR2(20)
);
定义一个长度为 20 的 NVARCHAR2 类型的列,用于存储变长的 Unicode 字符数据。
二、数值类型(Numeric)
1、NUMBER:用于存储整型或浮点型数值。
用于存储整型或浮点型数值,可以指定精度(有效数字的位数)和小数位数。如果没有指定精度,Oracle将使用 38
作为默认精度。
创建时常用 NUMBER(p, s)
,存储精度为 p
、小数位数为 s
的数值,即 p
表示数字的总长度,s
表示小数位数。
CREATE TABLE example_table (numeric_column NUMBER(10, 2)
);
可以存储最大长度为 10 位的数字,其中包含 2 位小数,如 1234567.89。
2、INTEGER 或 INT :整数类型
是NUMBER的一个子集,用于存储小的整数,等同于 NUMBER(38)
。
CREATE TABLE example_table (integer_column INTEGER
);
CREATE TABLE example_table (integer_column INT
);
3、FLOAT:浮点数类型
是NUMBER的一个特殊表示,用于存储双精度浮点数。
CREATE TABLE example_table (float_column FLOAT
);
float_column FLOAT:存储单精度浮点数。
4、REAL:实数类型
同样是NUMBER的一个特殊表示,但精度更高,可达63位。
CREATE TABLE example_table (real_column REAL
);
存储单精度浮点数,比 FLOAT 精度稍低,是 ANSI SQL 兼容的数据类型。
三、日期和时间类型(Date and Time)
1、DATE:存储日期和时间,精确到秒
储日期和时间,包括年、月、日、时、分、秒,精确到秒,范围从公元前 4712 年 1 月 1 日到公元 9999 年 12 月 31 日。Oracle在内部使用7个字节来保存日期数据。
CREATE TABLE example_table (date_column DATE
);
2、TIMESTAMP:时间戳数据类型
存储日期和时间,精确到秒的小数部分,可精确到纳秒,提供了比 DATE
更高的精度。
CREATE TABLE example_table (timestamp_column TIMESTAMP
);
3、INTERVAL:用于表示两个时间点之间的时间间隔
用于表示两个时间点之间的时间间隔
CREATE TABLE example_table (interval_column INTERVAL DAY TO SECOND
);
存储时间间隔,精确到秒,范围从天到秒。
四、二进制大对象类型(Binary Large Object)
1、BLOB:存储二进制对象
存储二进制大对象,可存储多达 4GB 的二进制数据,适用于存储图片、音频、视频等二进制文件。
CREATE TABLE example_table (binary_data_column BLOB
);
2、CLOB:存储大文本数据
用于存储大量字符数据,可存储多达 4GB 的字符数据,适用于存储较长的文本,如文章、文档等。
CREATE TABLE example_table (large_text_column CLOB
);
3、NCLOB:存储Unicode字符集的字符大对象
用于存储Unicode字符集的字符大对象数据,最大长度同样为4GB。
CREATE TABLE example_table (nclob_column NCLOB
);
存储大量的 Unicode 字符数据,类似于 CLOB,但使用国家字符集。
五、其他类型
1、RAW:存储原始二进制数据
用于存储原始二进制数据,如多媒体图像、声音等。最大长度为2000字节。
CREATE TABLE example_table (raw_data_column RAW(10)
);
存储二进制数据,最大长度为 n
字节,n
的取值范围是 1 到 2000。常用于存储加密数据或 Oracle 内部使用的数据。
2、LONG:存储超长字符串数据
用于存储超长字符串数据,最大长度为2GB。但在现代Oracle版本中,建议使用 CLOB 或 NCLOB 替代 LONG 类型。
CREATE TABLE example_table (long_column LONG
);
定义一个 LONG 类型的列,用于存储较长的字符数据,最大长度为 2GB,但使用时需要注意其性能和功能限制,因为它不支持很多字符操作函数。
3、LONG RAW:存储可变长度的二进制数据
用于存储可变长度的二进制数据,最大长度为2GB。同样在现代Oracle版本中,建议使用 BLOB 替代 LONG RAW 类型。
CREATE TABLE example_table (long_raw_column LONG RAW
);
存储二进制数据,最大长度也是 2GB,适合存储一些大型的二进制数据,但功能也比较受限,例如不支持很多二进制操作函数。
4、ROWID:用于唯一标识数据库中的行
用于唯一标识数据库中的行,是一个二进制数据类型,占用固定的10个字节。
CREATE TABLE example_table (row_id_column ROWID
);
存储数据库中行的物理地址,用于唯一标识行,长度为 18 个字节。
5、BFILE:在数据库外部存储大型二进制对象文件
用于在数据库外部存储大型二进制对象文件,最大长度为4GB。Oracle可以读取和查询BFILE,但不能直接写入。
CREATE TABLE example_table (external_file_column BFILE
);
存储指向外部文件的指针,文件存储在数据库服务器的文件系统中,而不是数据库内部。
6、BOOLEAN:布尔类型
布尔类型,用于存储真或假两种状态。
CREATE TABLE example_table (boolean_column NUMBER(1) CHECK (boolean_column IN (0, 1))
);
由于 Oracle 没有内置的 BOOLEAN 类型,使用 NUMBER(1) 并通过 CHECK 约束来模拟布尔值,其中 1 表示 TRUE,0 表示 FALSE。
7、XML:用于存储XML文档数据。
CREATE TABLE example_table (xml_column XMLTYPE
);
存储 XML 数据,使用 XMLTYPE 数据类型。
8、用户自定义类型(User Defined Type)
允许用户根据自己的需求定义新的数据类型。
六、数据类型选择的注意事项
1、字符类型
- 当数据长度固定时,使用
CHAR
。 - 当数据长度不固定时,使用
VARCHAR2
以节省空间。 - 对于大量文本数据,使用
CLOB
。
2、数值类型
- 对于整数,可使用
INTEGER
或NUMBER
。 - 对于小数,使用
NUMBER(p, s)
,根据精度需求确定p
和s
的值。
3、日期和时间类型
- 对于一般的日期和时间存储,使用
DATE
。 - 对于需要更高精度的日期和时间,使用
TIMESTAMP
。
相关文章:

Oracle 数据库常见字段类型大全及详细解析
在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。 文章目录 一、字符类型(Char…...

U3D的.Net学习
Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...

Tomcat下载配置
目录 Win下载安装 Mac下载安装配置 Win 下载 直接从官网下载https://tomcat.apache.org/download-10.cgi 在圈住的位置点击下载自己想要的版本 根据自己电脑下载64位或32位zip版本 安装 Tomcat是绿色版,直接解压到自己想放的位置即可 Mac 下载 官网 https://tomcat.ap…...

adb常用指令(完整版)
1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app,-r强制,-s安装sd卡上 3、adb uninstall [-k] 卸载app,-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…...

大数据学习(36)- Hive和YARN
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...

C# ASP.NET MVC项目内使用ApiController
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。 using System.Web.Http;namespace PrivilegeManager {public class WebApiConfig{public static void Register(HttpConfiguration config){config.MapHttpAttributeRoutes();config.Route…...

Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...

“推理”(Inference)在深度学习和机器学习的语境
“推理”(Inference)在深度学习和机器学习的语境中,是指使用经过训练的模型对新数据进行预测的过程。将其简单地理解为“模型的应用阶段”。在这一阶段,我们不再进行模型训练,而是利用已训练好且保存下来的模型来获取对…...

字节腾讯阿里大厂面经汇总:Java集合(容器)大厂面试题及参考答案
ArrayList 的扩容机制以及删除操作的时间复杂度 ArrayList 是 Java 中非常常用的一个集合类,它是基于数组实现的动态数组。当我们创建一个 ArrayList 时,如果不指定初始容量,它会有一个默认的初始容量(通常是 10)。当我们向 ArrayList 中添加元素时,如果元素的数量达到了…...

数据结构(初阶)(一)----算法复杂度
算法复杂度 算法复杂度数据结构算法算法效率复杂度的概念 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结…...

构建高效稳定的网络环境
概述 网络技术是当今IT行业的重要组成部分,构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素,包括网络协议、网络架构、网络安全和网络优化,并提供实用的技巧和最佳实践,以帮助您构建…...

使用Edge打开visio文件
使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步:安装Visio Viewer 第二步:添加注册表 桌面新增文本文件,将下面的内容放入新建文本中,修…...

ChatGPT Prompt 编写指南
一、第一原则:明确的意图 你需要明确地表达你的意图和要求,尽可能具体、描述性、详细地描述所需的上下文、你期望的结果等。你的要求越明确,越有希望获得你想要的答案。 糟糕的案例 ❌ 写一首关于 OpenAI 的诗。 更好的案…...

蚁群算法 (Ant Colony Optimization) 算法详解及案例分析
蚁群算法 (Ant Colony Optimization) 算法详解及案例分析 目录 蚁群算法 (Ant Colony Optimization) 算法详解及案例分析1. 引言2. 蚁群算法 (ACO) 算法原理2.1 蚂蚁觅食行为2.2 算法步骤2.3 数学公式3. 蚁群算法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案例1: 旅行商…...

安卓动态设置Unity图形API
命令行方式 Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLES Unity设置 安卓设置 创建自定义活动并将其设置为应用程序入口点。 在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在该方法中,将cmdLine…...

通信协议—WebSocket
一、WebSocket编程概念 1.1 什么是WebSocket WebSocket 是一种全双工通信协议,允许在客户端(通常是浏览器)和服务器之间建立持久连接,以实现实时的双向通信。它是 HTML5 标准的一部分,相比传统的 HTTP 请求ÿ…...

helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
harbor私有库访问的是http模式 harbor 2.8版本以上可以存储helm镜像 docker镜像推送的时候需要docker端配置insecure-registries 发现helm推送只能在harbor部署的本机使用localhost才能推送成功,即 helm push xxx.tgz oci://localhost:80/library 使用helm pus…...

数据结构——实验一·线性表
海~~欢迎来到Tubishu的博客🌸如果你也是一名在校大学生,正在寻找各种变成资源,那么你就来对地方啦🌟 Tubishu是一名计算机本科生,会不定期整理和分享学习中的优质资源,希望能为你的编程之路添砖加瓦⭐&…...

快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)
本文基于服务器端环境展开,使用的虚拟终端为Xshell。 miniconda miniconda是Anaconda的轻量版,仅包含Conda和Python,如果只做深度学习,可使用miniconda。 [注]:Anaconda、Conda与Miniconda Conda:创建和管…...

OpenCV相机标定与3D重建(66)对立体匹配生成的视差图(disparity map)进行验证的函数validateDisparity()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用左右检查来验证视差。矩阵 “cost” 应该由立体对应算法计算。 cv::validateDisparity 函数是 OpenCV 库中用于对立体匹配生成的视差图&…...

2025年新开局!谁在引领汽车AI风潮?
汽车AI革命已来。 在2025年伊始开幕的CES展上,AI汽车、AI座舱无疑成为了今年汽车行业的最大热点。其中不少车企在2025年CES上展示了其新一代AI座舱,为下一代智能汽车的人机交互、场景创新率先打样。 其中,东软集团也携带AI驱动、大数据支撑…...

Spring自定义BeanPostProcessor实现bean的代理Java动态代理知识
上文:https://blog.csdn.net/qq_26437925/article/details/145241149 中大致了解了spring aop的代理的实现,其实就是有个BeanPostProcessor代理了bean对象。顺便复习下java代理相关知识 目录 自定义BeanPostProcessor实现aopJava动态代理知识动态代理的几…...

三篇物联网漏洞挖掘综述
由于物联网设备存在硬件资源受限、硬件复杂异构, 代码、文档未公开的问题, 物联网设备的漏洞挖掘存在较大的挑战: 硬件资源受限性: 通用动态二进分析技术需要在运行程序外围实施监控分析。由于物联网设备存储资源(存储)的受限性,…...

Pytorch深度学习指南 卷I --编程基础(A Beginner‘s Guide) 第1章 一个简单的回归
本章正式开始使用pytorch的接口来实现对应的numpy的学习的过程,来学习模型的实现,我们会介绍numpy是如何学习的,以及我们如何一步步的通过torch的接口来实现简单化的过程,优雅的展示我们的代码,已经我们的代码完成的事…...

【EXCEL_VBA_实战】多工作薄合并深入理解
工作背景:多个工作薄存在冲突的名称,需快速合并 困难点:工作表移动复制时,若有冲突的名称,会不断弹出对话框待人工确认 思路:利用代码确认弹出的对话框 关键代码:Application.DisplayAlerts …...

mysql之表的外键约束
MySQL表的外键约束详细介绍及代码示例 外键约束是数据库中用于维护数据完整性和一致性的重要机制。它确保一个表中的数据与另一个表中的数据相关联,防止无效的数据引用。本文将详细介绍了外键约束的各个方面,并通过具体的代码示例进行演示。 1. 外键约束…...

Tuning the Go HTTP Client Settings
记录一次Go HTTP Client TIME_WAIT的优化 业务流程 分析 通过容器监控发现服务到事件总线的负载均衡之间有大量的短链接,回看一下代码 发送请求的代码 func SendToKEvent(ev *KEvent) error {data, err : json.Marshal(ev.Data)if err ! nil {return err}log.Pri…...

第二十四课 Vue中子组件调用父组件数据
Vue中子组件调用父组件数据 Vue是不建议在不同的组件直接传递值的,我们需要使用props方法来进行组件间的值传递 子组件调用父组件数据 父模板的数据,子组件是无法直接调用的 无法直接调用 1)组件调用顶级对象中的data <div class&quo…...

Jenkins-pipeline语法说明
一. 简述: Jenkins Pipeline 是一种持续集成和持续交付(CI/CD)工具,它允许用户通过代码定义构建、测试和部署流程。 二. 关于jenkinsfile: 1. Sections部分: Pipeline里的Sections通常包含一个或多个Direc…...

小米Vela操作系统开源:AIoT时代的全新引擎
小米近日正式开源了其物联网嵌入式软件平台——Vela操作系统,并将其命名为OpenVela。这一举动在AIoT(人工智能物联网)领域掀起了不小的波澜,也为开发者们提供了一个强大的AI代码生成器和开发平台。OpenVela项目源代码已托管至GitH…...