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 库中用于对立体匹配生成的视差图&…...
Unity安卓打包实战指南:从环境配置到APK生成全链路排错
1. 这不是“入门教程”,而是一份写给真实开发现场的生存指南你打开Unity,新建一个3D项目,拖进一个Cube,点击Play——它动了。你松了口气,觉得“Unity好像也没那么难”。但当你把APK打包发给测试同事,对方回…...
DMA-330地址空间限制与扩展方案解析
1. DMA-330地址空间限制解析DMA-330作为Arm CoreLink系列中的直接内存访问控制器,其物理寻址能力直接由AxADDR信号宽度决定。这个32位地址总线宽度意味着它原生仅支持4GB(2^32字节)的物理地址空间访问。在实际嵌入式系统设计中,这…...
轻量化部署,异地机房快速接入,多机房管理不用再大动干戈
随着业务拓展,不少企业、单位陆续建起异地分部机房、多区域节点机房。传统资产管理系统部署复杂、对接困难,异地机房接入成本高、周期长,改造繁琐,让很多运维团队望而却步,只能继续沿用分散人工管理,资产混…...
Jupyter Notebook里跑argparse脚本总报错?一个空列表参数搞定ipykernel_launcher.py error
Jupyter Notebook中argparse报错的终极解决方案:空列表参数实战解析在数据科学和机器学习的工作流中,Jupyter Notebook因其交互式特性成为众多研究者的首选工具。然而,当我们尝试在Notebook中运行那些原本为命令行设计的Python脚本时…...
基于Max78000与规则引导的音频数据集构建:边缘AI声音识别实战
1. 项目概述:当边缘AI遇见棕榈树里的“窃听者”在边缘计算和物联网设备大行其道的今天,我们常常面临一个核心矛盾:一方面,我们希望设备足够“聪明”,能实时识别并响应特定的声音模式,比如工厂里高压阀门的异…...
告别Windows卡顿!在VMware里给Kubuntu 22.04 LTS分区和安装的保姆级避坑指南
告别Windows卡顿!在VMware里给Kubuntu 22.04 LTS分区和安装的保姆级避坑指南你是否已经厌倦了Windows系统越来越慢的启动速度、频繁的后台更新和资源占用?当你的电脑开始频繁卡顿,或许该考虑给系统来一次"减负"了。Kubuntu 22.04 L…...
三步破解百度网盘限速:免费获取真实下载链接的终极指南
三步破解百度网盘限速:免费获取真实下载链接的终极指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘几十KB的龟速下载而苦恼吗?想要彻…...
实战教程:5步构建基于YOLOv5的FPS游戏智能瞄准系统
实战教程:5步构建基于YOLOv5的FPS游戏智能瞄准系统 【免费下载链接】FPSAutomaticAiming 基于yolov5的FPS游戏AI。 项目地址: https://gitcode.com/gh_mirrors/fp/FPSAutomaticAiming FPSAutomaticAiming是一个基于YOLOv5深度学习算法的FPS游戏自动瞄准系统&…...
终极鸣潮优化指南:WaveTools工具箱让你的游戏体验飞起来
终极鸣潮优化指南:WaveTools工具箱让你的游戏体验飞起来 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 对于《鸣潮》玩家来说,流畅的游戏体验和个性化的配置管理是提升游戏乐趣的关…...
基于Matter与Thread协议实现本地化智能电表数据采集与家居集成
1. 项目概述:将传统电表接入智能家居的“最后一公里”家里那个不起眼的电表,每个月只在抄表员来或者收到账单时才会被想起。但你知道吗?在法国,以及许多其他采用类似标准的地区,这个默默无闻的“铁盒子”其实一直在实时…...
