表格存储 SQL 数据类型详解-阿里云开发者社区

开发者社区> 琸然> 正文

表格存储 SQL 数据类型详解

简介: 本文主要介绍 Tablestore SQL中的数据类型与 MySQL 数据类型之间的映射关系。 ​ ## 背景介绍 ### Tablestore 数据类型 Tablestore 中的数据类型支持如下表所示,其中主键列支持的数据类型包括String、Integer和Binary,属性列支持的数据类型包括String、Integer、Double、Boolean和Binary。 - 主键列支持的数
+关注继续查看

本文主要介绍 Tablestore SQL中的数据类型与 MySQL 数据类型之间的映射关系。

背景介绍

Tablestore 数据类型

Tablestore 中的数据类型支持如下表所示,其中主键列支持的数据类型包括String、Integer和Binary,属性列支持的数据类型包括String、Integer、Double、Boolean和Binary。

  • 主键列支持的数据类型
数据类型定义大小限制
StringUTF-8,可为空长度不超过1 KB
Integer64 bit,整型,支持自增列8 Bytes
Binary二进制数据,可为空长度不超过1 KB
  • 属性列支持的数据类型
数据类型定义大小限制
StringUTF-8,可为空长度不超过2 MB
Integer64 bit,整型8 Bytes
Double64 bit,Double类型8 Bytes
BooleanTrue/False,布尔类型1 Byte
Binary二进制数据,可为空长度不超过2 MB

MySQL 数据类型

MySQL 支持多种类型,大体上可以分为四类:数值类型、字符串类型、日期/时间类型和其它类型。

  • 数值类型
类型大小范围(有符号)范围(无符号)说明
BITBIT(M),M取值范围1-64依赖于M的值依赖于M的值比特值
BOOL/ BOOLEAN1 byte0 or 10 or 1与TINYINT(1)等价
TINYINT1 byte(-128,127)(0,255)小整数值
SMALLINT2 bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT/INTEGER4 bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度浮点数值
DOUBLE8 bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点数值
DECIMAL/NUMERICDECIMAL(M,D) M为精度,D为标度依赖于M和D的值依赖于M和D的值小数值
  • 字符串类型
类型大小说明
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
BINARY0-255 bytes二进制形式的变长字符串
VARBINARY0-65535 bytes二进制形式的变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据
ENUM固定集合中的一个字符串对象枚举类型
SET固定集合中的0个或多个字符串对象集合类型
  • 日期/时间类型
类型大小范围格式说明
DATE3 bytes1000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3 bytes'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR1 bytes1901/2155YYYY年份值
DATETIME8 bytes1000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4 bytes1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳
  • 其它类型

包括 JSON类型、空间数据类型等,更详细的类型请参考 MySQL官方文档

数据类型映射

综合 Tablestore 和 MySQL 数据类型的语义与取值范围,目前版本中 Tablestore 和 MySQL的数据类型映射如下表所示,为一对一的映射关系。更多的数据类型将在后续的版本迭代中支持,敬请期待。

  • 主键列: INTEGER <=> BIGINT, STRING <=> VARCHAR(1024), BINARY <=> VARBINARY(1024)
  • 属性列:INTEGER <=> BIGINT, STRING <=> MEDIUMTEXT, BINARY <=> MEDIUMBLOB,

DOUBLE <=> DOUBLE, BOOLEAN <=> BOOL

SQL中字段数据类型数据表中字段数据类型是否支持做主键
BIGINTInteger
VARBINARY(主键)MEDIUMBLOB(属性列)Binary
VARCHAR (主键)MEDIUMTEXT(属性列)String
DOUBLEDouble
BOOLBoolean

建表样例

Tablestore SQL 支持标准的SQL语法进行 CREATE TABLE, 以下展示一个全类型的SQL样例,您可以根据具体的业务需求进行字段schema的调整。

CREATE TABLE `full_type` (
    `pkstr` VARCHAR(1024),
    `pkint` BIGINT(20),
    `pkbinary` VARBINARY(1024),
    `colbinary` MEDIUMBLOB,
    `colbool` BOOL,
    `coldouble` DOUBLE,
    `colint` BIGINT(20),
    `colstr` MEDIUMTEXT,
    PRIMARY KEY(`pkstr`,`pkint`,`pkbinary`)
);

CREATE TABLE执行成功后,即可以在控制台上看到相应的表字段Schema。

写在最后

更详细的功能介绍,欢迎参考表格存储官网文档,可以查看具体的 SQL 语法,用例,限制项等。
想了解更多表格存储的用法或者咨询欢迎加群讨论:
可搜索群号『11789671』或『23307953』,亦可直接扫码加入。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
android之数据存储之SQLite
SQLite开源轻量级数据库,支持92-SQL标准,主要用于嵌入式系统,只占几百K系统资源此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。
754 0
【Mysql】Mysql数据表区分大小写问题解决方案
原因 由于有的环境下,对数据表的大小写是明确区分的,但是我在导出的时候的数据表全部都是小写的,这个时候需要对环境进行配置 解决 vim /etc/my.cnf 在[mysqld]下加入一行:lower_case_table_names=1 service mysq...
669 0
表格存储 SQL 数据类型详解
本文主要介绍 Tablestore SQL中的数据类型与 MySQL 数据类型之间的映射关系。 ​ ## 背景介绍 ### Tablestore 数据类型 Tablestore 中的数据类型支持如下表所示,其中主键列支持的数据类型包括String、Integer和Binary,属性列支持的数据类型包括String、Integer、Double、Boolean和Binary。 - 主键列支持的数
49 0
表格存储 SQL 操作实战
表格存储做为一款结构化存储系统,近期发布了新功能 SQL,大幅简化了查询的门槛,用户无需学习繁琐的 SDK,也不用区分表,索引等不同的接口,可以像访问传统的 MySQL 这类数据库一样,使用 SQL 的方式访问云原生的结构化大数据存储。下面我们就来具体实操下,看看查询用起来顺不顺手。
93 0
表格存储 SQL 功能快速上手
# 功能介绍 表格存储(Tablestore)是阿里云自研的多模型结构化数据存储,提供海量结构化数据存储以及快速的查询和分析服务。表格存储的分布式存储和强大的索引引擎能够支持 PB 级存储、千万 TPS 以及毫秒级延迟的服务能力。使用表格存储你可以方便的存储和查询你的海量数据。​ 表格存储正式发布了 SQL 功能,满足用户业务平滑迁移到表格存储并可以继续通过 SQL 方式访问表格存储,表格存储
423 0
重新学习Mysql数据库3:Mysql存储引擎与数据存储原理
转自:https://draveness.me/mysql-innodb 作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL、PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MySQL 的官方文档,希望对各位了解数据库的、不了解数据库的有所帮助。
2130 0
C#读取Excel表格中数据并返回datatable
在软件开发的过程中,经常用到从excel表格中读取数据作为数据源,以下整理了一个有效的读取excel表格的方法。   DataTable GetDataTable(string tableName,string leftTopCel,string rightbutCel) ...
1036 0
Thinkphp5.0 PHPExcel 数据表格导出导入
1、先在github里面下载PHPexcel这个类库 或者通过以下链接下载PHPexcel类库。 http://www.php.cn/xiazai/leiku/1491 2、解压之后把它复制到extend里面 控制器代码如下: /** * Created by PhpStorm.
1795 0
+关注
琸然
上去就是一梭子代码。
17
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载