【Oracle】Oracle数据库中的数据类型

目录

  • 数值类型
  • 字符类型
    • CHAR(size):定长字符数据。
    • VARCHAR2(size):可变长字符数据
    • LONG:可变长字符数据,最大可达到 2G
    • NCHAR [( size )] 类型
    • NVARCHAR2( size )
  • LOB类型(二进制类型)
    • CLOB:字符数据+
    • BLOB:二进制数据
    • BFILE:二进制数据
  • 二进制类型
    • ROW ( size )
    • LONG ROW
    • 补充
  • 日期时间类型
    • DATE:日期型数据
    • TIMESTAMPL ( p ):时间戳
    • DATETIME 和 TIMESTAMP 区别?
  • 行类型
    • ROWID

数值类型

  • NUMBER(pL,s):数值类型

    • pL:指定数字的总位数
    • s:指定数字小数点后的位数
  • 可以存储0、正数和负数,数值的绝对值为10-o~10。

  • NUMBER 类型数据占用1~22B的存储空间。

  • p 表示数值的总位数(精度),默认值为38;

  • s 表示刻度,取值为一84~127, s 为正数时表示保留小数的位数, s 为负数时表示对小数点左侧 s 位进行舍人,默认值为0。

例如:

  • NUMBER(5),最大可存储的数值为 99999。
  • NUMBER(5,2),最大可存储的数值为 999.99。
  • NUMBER(18) ,默认长度 18 位

字符类型

CHAR(size):定长字符数据。

  • size:指定字符串的最大长度(必须是正整数,且不超过 32767)。
  • 用于存储固定长度的字符串。参数 size 规定了字符串的最大长度,可选关键字 BYTE 或 CHAR 表示其长度单位是字节或字符,默认值为1B,允许最大长度为2000B。
  • 如果 CHAR 类型的列中实际保存的字符串长度小于指定的 size 大小, Oracle 将自动使用空格填满。

VARCHAR2(size):可变长字符数据

  • size:指定字符串的最大长度(必须是正整数,且不超过 32767)。
  • 用于存储可变长度的字符串。
  • 参数size 规定了字符串的最大长度,可选关键字 BYTE 或 CHAR 表示其长度单位是字节或字符,默认单位为 BYTE ,允许字符串的最大长度为4000B。
  • 与 CHAR 类型不同,当VARCHAR2类型的列中实际保存的字符串长度小于 size 时,将按字符串实际长度分配空间。

LONG:可变长字符数据,最大可达到 2G

  • 大文本类型,用于存储变长字符串,最大长度为2GB。这是为了与早期版本兼容而保留的字符类型。
  • 在其它的数据库系统中常被称为 备注类型
  • 它主要用于存储大量的可以在稍后返回的文本内容

NCHAR [( size )] 类型

  • 用于存储多字节编码( UNICODE )的定长字符串。
  • 参数 size 指定了字符串的最大字符数。
  • 如果字符采用AL16UTF16编码,存储容量可以提高2倍,
  • 如果采用UTF8编码,存储容量可以提高3倍。
  • size 的取值最大为2000B,默认为1。

NVARCHAR2( size )

  • 用于存储多字节编码( UNIcoDE )的变长字符串。
  • 参数 size 指定了学符串的最大字符数,最大为4000B。

LOB类型(二进制类型)

CLOB:字符数据+

  • 存储字符,最大可以存4G
  • 用于存储单字节或多字节的大型字符串对象,支持使用数据库字符集的定长或变长字符。
  • 在 Oracle 12c中 CLOB 类型最大存储容量为128TB。

BLOB:二进制数据

  • 存储图像、声音、视频等二进制数据,最大可存4G
  • 用于存储大型的、未被结构化的变长的二进制数据,如二进制文件、图片文件、音频和视频等非文本文件。
  • 在 Oracle 12c中 BLOB 类型最大存储容量为128TB。

BFILE:二进制数据

  • 用于存储指向二进制格式文件的定位器,该二进制文件保存在数据库外部的操作系统中。
  • 在 Oracle 12c中 BFILE 文件最大容量为128TB,不能通过数据库操作修改 BFILE 定位器所指向的文件。

二进制类型

ROW ( size )

  • 用于存储变长的二进制数据, size 表示数据长度,取值范围为1~2000B。

LONG ROW

  • 用于存储变长的二进制数据,最大存储数据量为2GB。
  • Oracle 建议使用 BLOB 类型代替 LONG RAW 类型。

补充

  1. LONG RAW 数据类型在其它数据库系统中,常被称为 大二进制类型(BLOB) ,它可以用来存储 图形、声音视频数据。
  2. 尽管关系型 数据库 管理系统最初不是为它们而设计的,但是多媒体数据可以存储在 BLOB 或 LONG RAW 类型的字段内。

日期时间类型

DATE:日期型数据

  • 用于定义日期时间类型的数据。
  • 其数据长度为固定 7 个字节,分别描述:年、月、日、时、分、秒
  • 日期时间型,精确到秒。用于存储日期和时间。
  • 可以存储的日期范围为公元前4712年1月1日到公元后9999年12月31日,占据7B的空间,由世纪、年、月、日、时、分、秒组成。

TIMESTAMPL ( p ):时间戳

  • 还可以 显示时间 和 上下午标记。
  • 如:11-9月-2007 11:09:32.213 AM
  • 精确到秒的小数点后9位。
  • 表示时间戳,是 DATE 数据类型的扩展,允许存储小数形式的秒值。
  • p 表示秒的小数位数,取值范围为0~9,默认值为6。
  • 根据 p 值的设置不同, TIMESTAMP 类型数据占据7~11B空间,由世纪、年、月、日、时、分、秒组成,如30-MAY-1207.56.07.544000PM。

DATETIME 和 TIMESTAMP 区别?

  1. 都是既有 日期 又有 时间 的日期类型
  2. DATETIME 需要使用外部传入的日期,如果没传这个值就是 NULL
  3. TIMESTAMP 会使用 系统当前的时间 作为这个值的 默认值

行类型

ROWID

  • 行标识符,表示表中行的物理地址的伪劣类型。
  • ROWID 类型数据由18位十六进制数构成
    • 其中1-6位表示对象编号,
    • 7-8位表示文件编号,
    • 9-15位表示数据块编号,
    • 16-18位表示数据块内编号。
  • 十六进制串,表示行在所在的表中唯一的行地址
  • 该数据类型主要用于返回 ROWID 伪列,常用在可以将表中的每一条记录都加以唯一标识的场合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle各种连接写法介绍

1、左连接 左连接(左外连接): 基表全部查出来,外连接表有的匹配,没有则为null; 记录数与基表的记录数相同,前提是where后未加条件过滤; 两种写法(left join&#xff09…

中小学校园EasyCVR视频综合监管方案:构建安全、智能的校园环境

一、背景需求分析 随着科技的快速发展,校园安全问题日益受到社会各界的关注。尤其是在中小学校园中,学生的安全更是牵动着每一个家庭的心。为了更有效地保障学生的安全,提高校园安全管理水平,视频监控系统在中小学中的应用越来越…

伙伴活动|AI硬件大潮来袭,深圳的创客们在哪里?

「每一种硬件产品,都会被 GenAI 重新做一遍。」 分享一个社区伙伴「未来光锥」参与主办的活动。如果你同时对 AI 和硬件感兴趣,提到 maker 一词仍然会激动。推荐你参与这次活动。 AI 玩具Folotoy 的创始人、RTE 开发者社区成员王乐也将参与本次活动并分…

【C++进阶】C++中的IO流

目录 前言 1. C语言中的IO 2. 如何理解流 3. C中的IO流 3.1 C中的标准IO 3.2 C中的文件IO 4. stringstream 总结 前言 C语言中的I/O接口十分强大,但使用起来有些繁琐。好在C中的I/O方式为我们解决了这些问题,让数据的读写操作变得更加简洁和便捷; 在…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-57长短期记忆网络(LSTM)

57长短期记忆网络(LSTM) 1.LSTM原理 LSTM是专为解决标准RNN的长时依赖问题而设计的。标准RNN在训练过程中,随着时间步的增加,梯度可能会消失或爆炸,导致模型难以学习和记忆长时间间隔的信息。LSTM通过引入一组称为门…

【卡尔曼滤波器】DR_CAN 2 学习笔记:_数据融合_协方差矩阵_状态空间方程_观测器问题

【卡尔曼滤波器】2_数学基础_数据融合_协方差矩阵_状态空间方程_观测器问题 非常重要1 数据融合 data fusion 有俩秤,各自有自己的正态分布:俩秤是相互独立的:俩秤都不准,但标准差都符合正态分布 正态分布又叫做高斯分布 向左、向右 都是2, 标准差是2覆盖了68.4 %的可能:…

开启HIVE中分区表支持中文字段

进入hive表: use hive; #修改hive database编码 alter database hive default character set utf8; #修改table编码 alter table PARTITIONS default character set utf8; alter table PARTITION_KEY_VALS default character set utf8; alter table SDS default cha…

机器学习和AI智能写作对未来文案编辑的影响

欢迎关注小知:知孤云出岫 目录 机器学习和AI智能写作对未来文案编辑的影响1. 简介2. AI智能写作工具的现状3. AI智能写作的优势3.1 提高效率3.2 降低成本3.3 数据驱动的个性化 4. AI智能写作的挑战4.1 创造力和独创性4.2 道德和伦理问题4.3 技术限制 5. 行业变化5.…

【排序 - 插入排序 和 希尔排序】

插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是逐步构建有序序列。在排序过程中,它将未排序的元素逐个插入到已排序的部分中,从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思…

RAG实践:ES混合搜索BM25+kNN(cosine)

1 缘起 最近在研究与应用混合搜索, 存储介质为ES,ES作为大佬牌数据库, 非常友好地支持关键词检索和向量检索, 当然,支持混合检索(关键词检索向量检索), 是提升LLM响应质量RAG(Retri…

Ethercat这里的CRC是如何计算和使用的?

这里的CRC是如何计算和使用的? 非常好的问题。让我详细解释一下CRC在这个上下文中是如何计算和使用的: CRC 计算过程: a. 准备输入数据: 收集从开始标签到结束标签的所有字符(不包括带Crc32属性的开始标签)。将这些字…

Java 8革新:现代编程的全新标准与挑战

文章目录 一、方法引用二、接口默认方法三、接口静态方法四、集合遍历forEach()方法 一、方法引用 方法引用是Java 8中一种简化Lambda表达式的方式,通过直接引用现有方法来代替Lambda表达式。 方法引用使得代码更加简洁和易读,特别是在处理函数式接口时&…

Kotlin Class

普通 Class kotlin class TestClz {val name: String "hsw"val age: Int 18 }java public final class TestClz {NotNullprivate final String name "hsw";private final int age 18;NotNullpublic final String getName() {return this.name;}publ…

WPF-控件样式设置

1、控件样式设置 1.1、内嵌式为相同控件设置样式 <Window.Resources><Style TargetType"Button"><Setter Property"Background" Value"Yellow"></Setter><Setter Property"Width" Value"60"&g…

大数据专业创新人才培养体系的探索与实践

一、引言 随着大数据技术的迅猛发展&#xff0c;其在各行各业中的应用日益广泛&#xff0c;对大数据专业人才的需求也日益增长。我国高度重视大数据产业的发展&#xff0c;将大数据作为国家战略资源&#xff0c;推动大数据与各行业的深度融合。教育部也积极响应国家战略&#…

C语言 将密码译回原文

有一行电文,已按下面规律译成密码: A→Z a→z B→Y b→y C→X c→x … … 即第1个字母变成第26个字母,第i个字母变成第(26-i1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。 #include <stdio.h> #include <ctype.h>void decrypt(c…

JVM:字节码文件

文章目录 一、Java虚拟机的组成二、字节码文件的组成1、基本信息2、常量池3、字段4、方法5、属性 三、常用的字节码工具1、javap -v 命令2、jclasslib插件3、阿里arthas 一、Java虚拟机的组成 二、字节码文件的组成 1、基本信息 魔数、字节码文件对应的Java版本号访问标识&am…

MySQL 日期和时间函数

NOW(): 返回当前的日期和时间。 SELECT NOW() AS current_datetime; -- 结果: 当前的日期和时间 CURDATE(): 返回当前日期。 SELECT CURDATE() AS current_date; -- 结果: 当前的日期 CURTIME(): 返回当前时间。 SELECT CURTIME() AS current_time; -- 结果: 当前的…

Docker 使用基础(2)—镜像

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️&#x1f49f;──────── 4:20 &#x1f504; ◀️ ⏸ …

Vue组件通信props和$emit用法

父传子&#xff0c;通过props 子传父&#xff0c;通过$emit App.vue <template><div class"app" style"border: 3px solid #000; margin: 10px">我是APP组件<!-- 1.给组件标签&#xff0c;添加属性方式 赋值 --><!-- 添加属性传值 …