0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GaussDB 数据类型介绍

YG科技 来源:jf_81200783 作者:jf_81200783 2023-06-05 16:40 次阅读

GaussDB 数据库

GaussDB 是华为基于 openGauss 自研生态推出的云化企业级分布式关系型数据库,它支持多种数据类型,包括数值、字符、日期等。在使用 GaussDB 时,可能需要进行数据类型转换,以满足不同的需求。本文将以示例的形式罗列并介绍一些常见的数据类型转换方法等。

数据类型概念及特点

数据类型是一组值的集合以及定义在这个值集上的一组操作。GaussDB 数据库是由表的集合组成的,而各表中的列定义了该表,每一列都属于一种数据类型,GaussDB 根据数据类型有相应函数对其内容进行操作,例如 GaussDB 可对数值型数据进行加、减、乘、除操作等。

数据类型是用来定义数据存储格式和数据范围的规范。每种数据类型都有自己的特点和适用范围,它们在数据库中的作用主要有以下几点:

wKgaomR9n2OAH_SBAADpw3AtE6c828.png

存储数据:数据库中的每个字段都必须指定数据类型,这样才能确定它们在数据库中的存储格式。不同的数据类型使用不同的存储方式,例如整型会以二进制形式存储,而字符型则以 ASCII 码或 Unicode 编码形式存储。

约束数据范围:数据类型可以限制某个字段存储的数据范围,例如整型只能存储整数值,小数型只能存储浮点数等。这样可以确保数据的准确性和完整性,防止非法值进入数据库。

提高查询效率:数据库在查询数据时会根据字段的数据类型进行优化,例如对整型字段的查询会比对字符型字段的查询更快,因为整型字段的数据存储格式更简单,计算也更快。

降低存储空间:不同的数据类型使用不同的存储方式,一些数据类型可以在存储时减少存储空间的占用。例如使用整型可以减少存储空间的占用,因为整型在存储时只需要占用 4 个字节,而字符型则需要占用更多的存储空间。

提高数据安全性:数据类型可以帮助数据库对数据进行有效的过滤和验证,限制不合法的数据输入,增强数据的安全性和可靠性。

综上所述,数据类型在数据库中扮演着极为重要的角色,它们不仅仅用于存储数据,还可以提高查询效率、降低存储空间、提高数据安全性等。数据库开发人员在设计数据库时必须充分了解各种数据类型的特点和使用场景,合理选用数据类型,才能保证数据库的高效性和稳定性。

常用数据类型

1、常用字符串类型介绍

在进行字段设计时,需要根据数据特征选择相应的数据类型。字符串类型在使用时比较容易混淆,下表罗列了 GaussDB 中常见的字符串类型。

1)常用字符串类型

wKgZomR9n2SAGK9UAAEhvS7nfe4378.png

2、布尔类型

1)说明

“真”值的有效文本值是:TRUE、't'、'true'、'y'、'yes'、'1'以及所有非 0 整数。

“假”值的有效文本值是:FALSE、'f'、'false'、'n'、'no'、'0'、0。

使用 TRUE 和 FALSE 是比较规范的用法(也是 SQL 兼容的用法)。

3、数值类型

1)整数类型

wKgaomR9n2SAC1bDAACJsmgSJnE585.png

TINYINT、SMALLINT、INTEGER 和 BIGINT 类型存储各种范围的数字,也就是整数。试图存储超出范围以外的数值将会导致错误。

常用的类型是 INTEGER,因为它提供了在范围、存储空间、性能之间的最佳平衡。一般只有取值范围确定不超过 SMALLINT 的情况下,才会使用 SMALLINT 类型。而只有在 INTEGER 的范围不够的时候才使用 BIGINT,因为前者相对快得多。

4、日期/时间类型

1)日期输入说明:日期和时间的输入几乎可以是任何合理的格式,包括 ISO-8601 格式、SQL-兼容格式、传统 POSTGRES 格式或者其它的形式。系统支持按照日、月、年的顺序自定义日期输入。如果把 DateStyle 参数设置为 MDY 就按照“月-日-年”解析,设置为 DMY 就按照“日-月-年”解析,设置为 YMD 就按照“年-月-日”解析。

日期的文本输入需要加单引号包围,语法:type [ ( p ) ] 'value',可选的精度声明中的 p 是一个整数,表示在秒域中小数部分的位数。

wKgZomR9n2WAa9H3AAGN_UT2tWk516.png

2)时间段输入说明:reltime 的输入方式可以采用任何合法的时间段文本格式,包括数字形式(含负数和小数)及时间形式,其中时间形式的输入支持 SQL 标准格式、ISO-8601 格式、POSTGRES 格式等。另外,文本输入需要加单引号。

wKgaomR9n2WAAB5PAAGFeOkntRw387.png

数据类型选择建议

选择数据类型,在字段设计时,基于查询效率的考虑,一般遵循以下原则:

选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。

使用一致的数据类型,当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。

对于字符串数据,建议使用变长字符串数据类型,并指定最大长度。请务必确保指定的最大长度大于需要存储的最大字符数,避免超出最大长度时出现字符截断现象。除非明确知道数据类型为固定长度字符串,否则,不建议使用 CHAR(n)、BPCHAR(n)、NCHAR(n)、CHARACTER(n)。

索引字段的总长度不超过 50 字节。否则,索引大小会膨胀比较严重,带来较大的存储开销,同时索引性能也会下降。

尽量使用执行效率比较高的数据类型,一般来说整型数据运算(包括=、>、<、≧、≦、≠等常规的比较运算,以及 group by)的效率比字符串、浮点数要高。比如某客户场景中对列存表进行点查询,filter 条件在一个 numeric 列上,执行时间为 10+s;修改 numeric 为 int 类型之后,执行时间缩短为 1.8s 左右。

尽量使用短字段的数据类型:长度较短的数据类型不仅可以减小数据文件的大小,提升 IO 性能;同时也可以减小相关计算时的内存消耗,提升计算性能。比如对于整型数据,如果可以用 smallint 就尽量不用 int,如果可以用 int 就尽量不用 bigint。

表关联列尽量使用相同的数据类型。如果表关联列数据类型不同,数据库必须动态地转化为相同的数据类型进行比较,这种转换会带来一定的性能开销。

附:GaussDB 数据库涉及的数据类型

“数值类型、货币类型、布尔类型、字符类型、二进制类型、日期/时间类型、几何类型、网络地址类型、位串类型、文本搜索类型、UUID 类型、JSON/JSONB 类型、HLL 数据类型、范围类型、对象标识符类型、伪类型、列存表支持的数据类型、账本数据库使用的数据类型”。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    33609

    浏览量

    247124
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43460
  • 数据库
    +关注

    关注

    7

    文章

    3590

    浏览量

    63365
  • 华为云
    +关注

    关注

    3

    文章

    2155

    浏览量

    16802
收藏 人收藏

    评论

    相关推荐

    Redis数据类型介绍

    Redis 作为一个内存数据库已经被许许多多的公司使用,它的性能非常的优秀,读写速度支持非常快而且支持 10W 的 QPS 。今天我们就来学习下它的丰富的数据类型。 Redis 数据类型 Redis
    的头像 发表于 10-09 10:53 529次阅读
    Redis<b class='flag-5'>数据类型</b><b class='flag-5'>介绍</b>

    vhdl数据类型

    VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。VHDL中的数据类型可以分成四大类: 标量型(SCALAR TYPE):属单元素的最基本的数据类型,通常用于描述一个单值数据对象
    发表于 03-30 15:59 11次下载

    51单片机学习笔记(9)——C51的基本数据类型和扩充数据类型

    基本数据类型:扩充数据类型
    发表于 11-14 13:36 1次下载
    51单片机学习笔记(9)——C51的基本<b class='flag-5'>数据类型</b>和扩充<b class='flag-5'>数据类型</b>

    Struct结构数据类型

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC
    的头像 发表于 07-25 17:02 2433次阅读

    结构数据类型(Struct)及应用案例

    Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型(UDT)代替。
    的头像 发表于 07-27 16:10 1342次阅读

    结构数据类型Struct介绍

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC
    的头像 发表于 01-30 10:15 1271次阅读

    什么是数据类型转换

    常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 15:21 576次阅读

    定义数据类型

    在运算之前我们必须首先定义出数据类型,定义出脚本支持的数据类型,这是运算的基础。 这一小节我们将定义出数据类型,在这里我们暂时定义四个数据类型:
    的头像 发表于 03-03 10:10 623次阅读

    S71500-硬件数据类型介绍

    硬件数据类型:硬件数据类型由 CPU 提供。可用硬件数据类型的数目取决于 CPU。
    的头像 发表于 05-16 09:21 3587次阅读
    S71500-硬件<b class='flag-5'>数据类型</b><b class='flag-5'>介绍</b>

    GaussDB数据类型转换介绍

    数据类型转换在实际应用中非常常见。GaussDB 作为一款企业级分布式关系型数据库,在实际业务场景使用中,也会避免不了数据类型的转换。以下是一些数据
    的头像 发表于 06-05 16:29 523次阅读
    <b class='flag-5'>GaussDB</b><b class='flag-5'>数据类型</b>转换<b class='flag-5'>介绍</b>

    ARRAY 数据类型的变量

    要求 全局数据块已打开。 操作步骤 要声明一个 ARRAY 数据类型的变量,请按以下步骤操作: 在“名称”(Name) 列中,输入变量的名称。 在“数据类型”列中输入“Array”数据类型
    的头像 发表于 07-06 11:08 650次阅读

    浅谈PLC定义数据类型的应用

    PLC定义数据类型以下用一个例子介绍PLC定义数据类型的应用,以便进一步理解PLC定义数据类型
    的头像 发表于 07-24 16:07 806次阅读
    浅谈PLC定义<b class='flag-5'>数据类型</b>的应用

    Redis的数据类型有哪些

    Redis的数据类型有哪些?有五种常用数据类型:String、Hash、Set、List、SortedSet。以及三种特殊的数据类型:Bitmap、HyperLogLog、Geospatial
    的头像 发表于 10-09 10:51 395次阅读

    oracle的数据类型有哪些

    Oracle数据库中有许多数据类型可供选择,每种数据类型都有其各自的特点和适用场景。下面是对Oracle数据库中最常用的数据类型的详尽说明,
    的头像 发表于 12-05 16:45 623次阅读

    plc数据类型怎么理解和应用

    PLC(可编程逻辑控制器)是一种工业自动化设备,用于控制机械和工业过程。在PLC编程中,数据类型是非常重要的概念,因为它决定了程序中数据的存储和处理方式。正确理解和应用PLC数据类型是编写有效、可靠
    的头像 发表于 12-19 11:39 1371次阅读