写点什么

YashanDB 数据类型

作者:YashanDB
  • 2025-03-27
    广东
  • 本文字数:1198 字

    阅读完需:约 4 分钟

数据库里所有的数据都归属于某一种数据类型(Data Type),数据类型标识了数据的存储相关属性和对该种数据的操作限制。


当用户输入一个数据时,系统将按照一定的规则识别其所属数据类型,具体可参考字面量描述。


当创建表对象时,对列字段的声明必须指定一种数据类型,依据这种数据类型,该列上的所有数据都应满足其存储属性要求,如长度、精度等,才能被成功插入到表中。YashanDB 同时提供了数据类型的隐式转换功能,当用户输入数据与字段上定义的数据类型不一致时,系统将先进行数据类型转换,例如将字符型'100'转换为数值型 100,此时插入的数据可以满足存储要求,操作成功;对于数据类型无法转换的,例如无法将字符型'aaa'转换为数值型数据,此时才返回插入数据失败。


当数据被用于表达式计算时,其类型也对计算的操作产生限制,符合限制条件的数据类型才能成功执行计算,例如数学类计算要求其参数均为数值型、日期类计算要求其参数均为日期时间型。但如果用户显式指定了数据转换,或者根据 YashanDB 的隐式转换规则可以成功执行转换,则这些跨数据类型的表达式计算是可以成功执行的。


在一些其他场景中,例如数据被用于函数的参数传递,而其类型与函数定义的参数类型不一致时,系统均会先执行数据类型的隐式转换,以保证最大的兼容性和计算能力。


基于某些数据类型在其属性和操作限制上的共同点,YashanDB 的数据类型可以划分为如下几大类:


  • 数值型:与数字(Numeric)相关的数据属于此类型,具体包含 TINYINT、SMALLINT、INT/INTEGER、BIGINT、NUMBER、FLOAT、DOUBLE、BIT 等数据类型。

  • 字符型:与文本字符(Character)相关的数据属于此类型,具体包含 CHAR、VARCHAR 等数据类型。

  • 日期时间型:与日期时间(Datetime)相关的数据属于此类型,具体包含 DATE、TIME、TIMESTAMP、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND 等数据类型。

  • 布尔型:与布尔逻辑(Boolean)相关的数据属于此类型,具体为 Boolean 数据类型。

  • 大对象型:与大二进制、大文本等大对象(Large Object)相关的数据属于此类型,具体包含 CLOB、BLOB 等数据类型。

  • ROWID/UROWID:用于表示某条行记录的物理地址的数据属于此类型。

  • RAW:与 VARCHAR 类似的可变长度数据类型,多被用于存储二进制对象。

  • JSON:与 JSON 相关的可变长度数据类型,多被用于存储 JSON 格式的二进制对象。

  • ST_GEOMETRY:与 GIS 相关的空间数据类型,具体包含 POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON 等数据类型。

  • XMLTYPE:与 XML 相关的可变长度数据类型,底层以 CLOB 形式存储 XML 格式的数据。

  • BOX2D:与 ST_GEOMETRY 相关的空间数据类型,用于表示 ST_GEOMETRY 的二维边界框。


本章节将按上述列举大类分别阐述 YashanDB 内置的所有数据类型的定义以及它们之间的转换规则。


Note

以下数据类型只适用于 HEAP 表:

以下数据类型只适用于单机 HEAP 表:

  • ST_GEOMETRY

  • BOX2D

发布于: 15 分钟前阅读数: 6
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB数据类型_数据库_YashanDB_InfoQ写作社区