Oracle 数据库新手指南(二) 数据类型

上一篇文章中,我们探讨了 Oracle 数据库的基础知识,包括 Oracle 数据库的概述、与 MySQL 的主要区别,以及为什么选择使用 Oracle。现在,让我们更深入地了解 Oracle 数据库中的数据类型。

数据类型是构建数据库表和存储数据的基础。正确选择数据类型对于保证数据的准确性、提高查询效率以及优化存储空间至关重要。在本文中,我们将介绍 Oracle 数据库中常用的几种数据类型,并探讨它们的特点和适用场景。

一.数据类型

Oracle 数据库支持多种数据类型,用于存储不同类型的数据。以下是 Oracle 中一些常用的数据类型及其用途:

(1)字符串型
1.定长字符串 (CHAR)

描述: 长度固定的字符串类型,如果实际输入的字符少于定义的长度,则会用空格填充到定义的最大长度。如果没有指定长度,默认为1个字符。

示例:

  • CHAR(5) 可以存储 '男',结果为 '男 '(后面有四个空格填充)
  • ps:Oracle 中 CHAR 类型在默认非 Unicode 字符集,所以一个中文只占1个字符
  • CHAR(5) 可以存储 '12345'
  • CHAR(5) 可以存储 'abcde'

注释: 在 Oracle 中,一个中文字符占用3字节,一个英文字母或数字占用1字节。

2.变长字符串 (VARCHAR2, NVARCHAR2)
  • VARCHAR2: 变长字符串类型,根据实际内容的长度存储,按照 UTF-8 格式编码。

示例:

  • VARCHAR2(20) 存储 '张三',实际占用6字节(因为 '张三' 两个汉字占用了6字节,但实际存储空间不会填充空格,所以长度就是6字节)。
  • NVARCHAR2: 变长字符串类型,同样根据实际内容的长度存储,但是按照 Unicode 编码方式存储。

示例:

  • NVARCHAR2(20) 存储 '张三',实际占用4字节(因为 '张三' 两个汉字在 Unicode 中占用4字节)。
3.超长字符串 (LONG)
  • 描述: 用于存储非常长的字符串,最大可存储2GB的信息。
  • 注意: LONG 类型已被 Oracle 标记为过时,建议使用 CLOB 或 NCLOB 来替代。

这些字符串类型为不同的应用场景提供了灵活性。在设计数据库时,应根据实际需求选择合适的字符串类型。

(2).数字类型
1.NUMBER(p, s)
  • p: 有效数字位数,即整数部分加上小数部分的总位数。
  • s: 小数位数,即小数点后的位数。
  • 最大存储: Oracle 支持最多38位的有效数字。

示例:

  • NUMBER(3, 1) 可以存储 21.5 或 31.0
  • 这表示整数部分最多可以有2位数字(3 - 1),小数部分有1位数字。
2.INTEGER
  • 描述: 整数类型,用于存储整数值。
  • 最大存储: 最大可以存储38位的整数。
  • 特点: 当插入的数值包含小数时,Oracle 会自动对其进行四舍五入处理。

通过以上两种类型的介绍,您可以根据实际需求选择合适的数字类型。NUMBER 类型提供更大的灵活性,可以同时处理整数和小数;而 INTEGER 类型适用于只需要存储整数值的情况,并会在插入非整数值时进行四舍五入。

(3)日期时间类型
1.DATE
  • 描述: 日期时间类型,可以存储从公元 1 年 1 月 1 日到 9999 年 12 月 31 日之间的日期和时间信息,精度到秒。

示例:

  • 2024-03-28 12:45:32
2.TIMESTAMP
  • 描述: 时间戳类型,可以存储日期和时间信息,精度更高,可以记录到毫秒甚至更细粒度的时间单位。

示例:

  • 2024-02-12 10:32:45.456

通过使用 DATE 和 TIMESTAMP 类型,您可以根据需要存储不同精度的日期时间信息。DATE 类型适合一般用途,而 TIMESTAMP 类型更适合需要高精度时间记录的应用场景。

(4)二进制类型: LOB (Large Object)
1.CLOB (Character Large Object)
  • 描述: 用于存储大量文本数据的类型,最大长度可达4GB。
  • 用途: 适合存储大量的文本信息,如文章、文档等。
2.BLOB (Binary Large Object)
  • 描述: 用于存储二进制数据的类型,可以存储图像、音频、视频文件等。
  • 用途: 适合存储多媒体文件或其他二进制数据。
3.其他不常用二进制类型
  • NCLOB:用于存储Unicode字符大对象。
  • BFILE:用于存储外部二进制文件的引用。

LOB 类型提供了存储大量数据的能力,无论是文本还是二进制数据。通过使用 CLOB 和 BLOB,您可以有效地处理大型文件或数据集。

(5)其他不常用数据类型
  • BOOLEAN:用于存储布尔值(true/false)。
  • RAW:用于存储原始字节数据。
  • INTERVAL:用于存储时间间隔。

示例

以下是一个使用不同数据类型的表的例子:

CREATE TABLE employee (
    id NUMBER(5) PRIMARY KEY,
    name VARCHAR2(50),
    hire_date DATE,
    salary NUMBER(10, 2),
    department_id NUMBER(3),
    photo BLOB
);

在这个例子中,我们定义了一个名为 employee 的表,其中包含了不同类型的数据列。

注意事项

  • 选择合适的类型:根据数据的实际需要选择合适的数据类型。
  • 考虑存储空间:不同类型的数据占用的空间不同,合理选择可以节省存储空间。
  • 性能考量:不同类型的数据在查询和处理时的性能也不同,选择合适的类型有助于提升性能。

好了,我们今天一起探索了 Oracle 数据库中的各种数据类型。从数字到文字,再到图片和视频,每一种数据类型都有它的用武之地。选择合适的数据类型就像是挑选合适的工具一样重要,它能让你的工作事半功倍。

希望今天的分享对你有用,无论你是刚接触 Oracle 的新手,还是已经有一定经验的老手,都能从中受益。记住,选择正确的数据类型能让我们的数据库更加高效和健壮。

感谢你的阅读,我们下篇文章再见!

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值