首页 > 其他分享 >GaussDB数据类型介绍

GaussDB数据类型介绍

时间:2023-06-05 17:03:30浏览次数:31  
标签:存储 GaussDB 数据类型 介绍 类型 数据 数据库

GaussDB 数据库

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

数据类型概念及特点

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


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

GaussDB数据类型介绍_数据库

· 

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

· 

· 

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

· 

· 

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

· 

· 

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

· 

· 

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

· 


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

常用数据类型

1、常用字符串类型介绍

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


1)常用字符串类型

GaussDB数据类型介绍_数据类型_02

2、布尔类型


1)说明

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

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


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

3、数值类型         


1) 整数类型

GaussDB数据类型介绍_数据库_03

· 

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

· 

· 

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

· 

4、日期/时间类型         


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


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



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



数据类型选择建议

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


· 

选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、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数据类型、范围类型、对象标识符类型、伪类型、列存表支持的数据类型、账本数据库使用的数据类型”。


标签:存储,GaussDB,数据类型,介绍,类型,数据,数据库
From: https://blog.51cto.com/u_16102901/6417939

相关文章

  • 1.2 Java基础 数据类型(Integer源码解析)
    Java数据类型和Integer源码解析1.2.1基本数据类型1.2.2什么是拆装箱1.2.3拆装箱是如何实现的1.2.4Integer继承关系1.2.5Integer源码解析1.2.1基本数据类型       如大家所知,Java是一门面向对象的语言,但是java并非完全面向对象,Java中的数据类型分为了       ......
  • WIFI协议及其物理帧结构介绍
    1  目的本文档对WIFI协议介绍、WIFI信道分配、WIFI扩展信道分配、WIFI帧结构进行简要介绍。2  WIFI协议介绍Ethenet(有线网)和Wifi(无线网)采用的协议都属于IEEE802协议集。其中,Ethenet以802.3协议做为其网络层以下的协议;Wifi以802.11做为其网络层以下的协议。无论是有线......
  • 数据类型
       ......
  • 安科瑞AESP100系列末端多回路智慧用电在线监测装置功能介绍
    安科瑞虞佳豪AESP100系列末端多回路智慧用电在线监测装置(以下简称装置)应用于户内建筑物及类似场所的工业、商业、民用建筑及基础设施等领域低压终端配电网络。此装置配合断路器使用,对用电线路的关键电气因素,如电压、电流、功率、温度、能耗等进行实时监测,具有预警报警、电能计量......
  • FreeMarker介绍及基本数据类型和用法
    FreeMarker介绍及基本数据类型和用法FreeMarker中文官方参考手册FreeMarker英文官方参考手册一、FreeMarker介绍FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一......
  • set集合介绍
    Set接口继承自Collection接口,所以List接口拥有Collection接口提供的所有常用方法。一、set集合介绍Set集合与Collection集合基本相同,没有提供任何额外的方法。实际上Set就是Collection,只是行为略有不同(Set不允许包含重复元素)。Set集合不允许包含相同的元素,如果试图把两个相同的元素......
  • hbase coprocessor 官网介绍
    官网上介绍:  ApacheHBaseMain | HBaseProjectManage... »WEDNESDAYFEB01,2012CoprocessorIntroductionAuthors:TrendMicroHadoopGroup:MingjieLai,EugeneKoontz,AndrewPurtell(Theoriginalversionoftheblogwaspostedathtt......
  • 基于MyBatis3.0.6的基本操作介绍
    评:通俗易懂每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory本身是由SqlSessionFactoryBuilder创建的,一般而言,在一个应用中,一个数据库只会对应一个SqlSessionFactory,所以一般我们都把SqlSessionFactory定义成单例模......
  • 【python基础】复杂数据类型-列表类型(元组)
    1.初识元组列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的。然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求python将不能修改的值称为不可变的,而不可变的列表被称为元组。元组看起来犹如列表,但使用圆括号而不是方括号来标识。其语法格......
  • 【python基础】复杂数据类型-列表类型
    复杂数据类型-列表类型-学习目录列表-增删改查列表-排序/长度/遍历列表-数值列表列表-列表切片列表-元组......