首页 > 数据库 >SAP HANA SQL系列一:常用数据类型

SAP HANA SQL系列一:常用数据类型

时间:2022-10-17 11:36:27浏览次数:55  
标签:LOB 00 HANA 数据类型 存储 SQL 类型 小数位

 

数据类型
日期时间类型
DATE
TIME
SECONDDATE
TIMESTAMP
数字类型
SMALLINT
INTEGER
BIGINT
DECIMAL(精度,小数位数)或 DEC(p, s)
SMALLDECIMAL
REAL
DOUBLE
FLOAT( n )
字符类型
VARCHAR
NVARCHAR
ALPHANUM
SHORTTEXT
二进制类型
VARBINARY
大对象(LOB)类型
BLOB
CLOB
NCLOB
TEXT
数据类型
SAP HANA支持8种类型的SQL数据类型,这取决于你必须在列中存储的数据类型。

数字(Numeric)
字符/字符串(Character/ String)
布尔值(Boolean)
日期时间(Date Time)
二进制(Binary)
大型对象(Large Objects)
多值(Multi-Valued)
空间类型 (Spatial types)
分类 数据类型
日期时间类型 DATE, TIME, SECONDDATE, TIMESTAMP
数字类型 TINYINT, SMALLINT, INTEGER, BIGINT, SMALLDECIMAL, DECIMAL, REAL, DOUBLE
布尔型 BOOLEAN
字符串类型 VARCHAR, NVARCHAR, ALPHANUM, SHORTTEXT
二进制类型 VARBINARY
大对象类型 BLOB、CLOB、NCLOB 、 TEXT
多值类型 ARRAY
空间类型 ST_GEOMETRY, ST_POINT
日期时间类型
DATE
DATE 数据类型由年、月、日信息组成,表示一个日期值。DATA 类型的默认格式为‘YYYYMM-DD’。YYYY 表示年,MM 表示月而 DD 表示日。时间值的范围从 0001-01-01 至 9999-12-31。
TIME
TIME 数据类型由小时、分钟、秒信息组成,表示一个时间值。TIME 类型的默认格式为‘HH24:MI:SS’。HH24 表示从 0 至 24 的小时数,MI 代表 0 至 59 的分钟值而 SS 表示 0 至 59的秒。
SECONDDATE
SECONDDATE 数据类型由年、月、日、小时、分钟和秒来表示一个日期和时间值。
SECONDDATE 类型的默认格式为‘YYYY-MM-DD HH24:MI:SS’。YYYY 代表年,MM 代表月份,
DD 代表日,HH24 表示小时,MI 表示分钟,SS 表示秒。日期值的范围从 0001-01-01 00:00:01 至 9999-12-31 24:00:00。
TIMESTAMP
TIMESTAMP 数据类型由日期和时间信息组成。其默认格式为‘YYYY-MM-DD
HH24:MI:SS.FF7’。FFn 代表含有小数的秒,其中 n 表示小数部分的数字位数。时间戳的范围从 0001-01-01 00:00:00.0000000 至 9999-12-31 23:59:59.9999999。
CREATE TABLE T1(A TIMESTAMP);
INSERT INTO T1 VALUES ('2018/01/02 10:00:00'); --> OK
INSERT INTO T1 VALUES ('02/01/2018 10:00:00'); --> ERROR
SELECT TO_VARCHAR(A) FROM T1; --> 2018-01-02 10:00:00.0000000

SET 'TIMESTAMP_FORMAT' = 'DD/MM/YYYY HH:MI:SS';

CREATE TABLE T2(A TIMESTAMP);
INSERT INTO T2 VALUES ('2018/01/02 10:00:00'); --> ERROR
INSERT INTO T2 VALUES ('02/01/2018 10:00:00'); --> OK

SELECT TO_VARCHAR(A) FROM T2; --> 02/01/2018 10:00:00
1
2
3
4
5
6
7
8
9
10
11
12
Date 格式 支持的日期格式


Time 格式 支持的时间格式

 

Timestamp 格式 支持的时间戳格式

 

额外 格式 DateTime 额外格式

 

数字类型
TINYINT 数据类型存储一个 8 位无符号整数。TINYINT 的最小值是 0,最大值是 255。

SMALLINT
SMALLINT 数据类型存储一个 16 位无符号整数。SMALLINT 的最小值为-32,768 ,最大值为
32, 767。

INTEGER
INTEGER 数据类型存储一个 32 位有符号整数。INTEGER 的最小值为-2,147,483,648 ,最大
值为 2,147,483,647。

BIGINT
BIGINT 数据类型存储一个 64 位有符号整数。INTEGER 的最小值为9,223,372,036,854,775,808,最大值为 9, 223,372,036,854,775,807。

DECIMAL(精度,小数位数)或 DEC(p, s)
DECIMAL (p, s) 数据类型指定了一个精度为 p 小数位数为 s 的定点小数。精度是有效位数的
总数,范围从 1 至 34。
小数位数是从小数点到最小有效数字的数字个数,范围从-6,111 到 6,176,这表示位数指
定了十进制小数的指数范围从 10-6111 至 106176。如果没有指定小数位数,则默认值为 0。
当数字的有效数字在小数点的右侧时,小数位数为正;有效数字在小数点左侧时,小数位
数为负。
例子:0.0000001234 (1234 x 10-10) 精度为 4,小数位数 10。 1.0000001234
(10000001234 x 10-10) 精度为 11,小数位数为 10。 1234000000 (1234x106) 精度为 4,小数
位数为-6。
当未指定精度和小数位数,DECIMAL 成为浮点小数。这种情况下,精度和小数位数可以在
上文描述的范围内不同,根据存储的数值,1-34 的精度和 6111-6176 的小数位数。

SMALLDECIMAL
SMALLDECIMAL 是一个浮点十进制数。精度和小数位数可以在范围有所不同,根据存储的
数值,1-16 的精度以及-369-368 的小数位数。SMALLDECIMAL 只支持列式存储。
DECIMAL 和 SMALLDECIMAL 都是浮点十进制数。举例来说,一个十进制列可以存储 3.14,
3.1415,3.141592 同时保持它们的精度。
DECIMAL(p, s)是 SQL 对于定点十进制数的标准标记。例如,3.14, 3.1415,3.141592 存储
在 decimal(5, 4)列中为 3.1400, 3.1415, 3.1416,各自保持其精度(5)和小数位数(4)。

REAL
REAL 数据类型定义一个 32 位单精度浮点数。

DOUBLE
DOUBLE 数据类型定义一个 64 位的单精度浮点数,最小值为-1.79769 x 10308,最大值为
1.79769x10308,DOUBLE 最小的正数为 2.2207x10-308,最大的负数为-2.2207x10-308。

FLOAT( n )
FLOAT 数据类型定义一个 32 位或 64 位的实数,n 指定有效数字的个数,范围可以从 1 至
53。
当你使用 FLOAT( n )数据类型时,如果 n 比 25 小,其会变成 32 位的实数类型;如果 n 大
于等于 25,则会成为 64 的 DOUBLE 数据类型。如果 n 没有声明,默认变成 64 位的
double 数据类型。

字符类型
字符类型用来存储包含字符串的值。VARCHAR 类型包含 ASCII 字符串,而 NVARCHAR 用来
存储 Unicode 字符串。

VARCHAR
VARCHAR (n) 数据类型定义了一个可变长度的 ASCII 字符串,n 表示最大长度,是一个 1 至
5000 的整数值。

NVARCHAR
NVARCHAR (n) 数据类型定义了一个可变长度的 Unicode 字符串,n 表示最大长度,是一个
1 至 5000 的整数值。

ALPHANUM
ALPHANUM (n) 数据类型定义了一个可变长度的包含字母数字的字符串,n 表示最大长度,
是一个 1 至 127 的整数值。

SHORTTEXT
SHORTTEXT (n) 数据类型定义了一个可变长度的字符串,支持文本搜索和字符搜索功能。
这不是一个标准的 SQL 类型。选择一列 SHORTTEXT (n) 列会生成一个 NVARCHAR (n)类型的
列。

<shorttext_type> ::= SHORTTEXT '(' int_const ')' <elem_list_shorttext>
<elem_list_shorttext> ::= <elem_shorttext> [... ',' <elem_shorttext>]
<elem_shorttext> ::= <fulltext_elem> | SYNC[HRONOUS]
1
2
3
二进制类型
二进制类型用来存储二进制数据的字节。

VARBINARY
VARBINARY 数据类型用来存储指定最大长度的二进制数据,以字节为单位,n 代表最大长
度,是一个 1 至 5000 的整数。

大对象(LOB)类型
LOB(大对象)数据类型,CLOB,NCLOB 和 BLOB,用来存储大量的数据例如文本文件和图像。一
个 LOB 的最大大小为 2GB。

BLOB
BLOB 数据类型用来存储大二进制数据。

CLOB
CLOB 数据类型用来存储大 ASCII 字符数据。

NCLOB
NCLOB 数据类型用来存储大 Unicode 字符对象。

TEXT
TEXT 数据类型指定支持文本搜索功能,这不是一个独立的 SQL 类型。选择一列 TEXT 列会
生成一个 NCLOB 类型的列。

<text_type> ::= TEXT <opt_fulltext_elem_list_text>
<opt_fulltext_elem_list_text> ::=
<fulltext_elem_text> [... ',' <fulltext_elem_text>]
<fulltext_elem_text> ::= <fulltext_elem>
| [SYNC[HRONOUS]
| [ASYNC[HRONOUS] FLUSH [QUEUE]
EVERY <n> MINUTES [[OR] AFTER <m> DOCUMENTS] ]
1
2
3
4
5
6
7
TEXT 和 SHORTTEXT 共同语法规则

<fulltext_elem> ::= LANGUAGE COLUMN <column_name>
| LANGUAGE DETECTION '(' <str_const_list> ')'
| MIME TYPE COLUMN <column_name>
| FUZZY SEARCH INDEX [ON|OFF]
| PHRASE INDEX RATIO [ON|OFF]
| CONFIGURATION <str_const>
| SEARCH ONLY [ON|OFF]
| FAST PREPROCESS [ON|OFF]
1
2
3
4
5
6
7
8
LOB 类型用于存储和检索大量的数据。LOB 类型支持以下操作:

Length(n)以字节形式返回 LOB 的长度。
LIKE可以用来搜索 LOB 列。
LOB 类型有如下限制:

LOB 列不能出现在 ORDER BY 或 GROUP BY 子句中。
LOB 列不能出现在 FROM 子句作为联接谓词。
不能作为谓词出现在 WHERE 子句中,除了 LIKE,CONTAINS,=或<>。
LOB 列不能出现在 SELECT 子句作为一个聚合函数的参数。
LOB 列不能出现在 SELECT DISTINCT 语句中。
LOB 列不能用于集合操作,除了 EXCEPT, UNION ALL 是个例外。
LOB 列不能作为主键。
LOB 列不能使用 CREATE INDEX 语句。
LOB 列不能使用统计信息更新语句。
https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.05/en-US/20a1569875191014b507cf392724b7eb.html
————————————————
版权声明:本文为CSDN博主「邢一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_43393325/article/details/121605742

标签:LOB,00,HANA,数据类型,存储,SQL,类型,小数位
From: https://www.cnblogs.com/zt11402/p/16798555.html

相关文章

  • SAP HANA SQL系列三:日期时间函数
    日期时间函数ADD_DAYSADD_MONTHSADD_SECONDSADD_YEARSCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPCURRECT_UTCDATECURRENT_UTCTIMECURRENT_UTCTIMESTAM......
  • 从 SQL Server 创建到 MySQL 的链接服务器
    问题SQLServer链接服务器用于查询远程数据库,在本技巧中,我们将学习如何从SQLServer为MySQL服务器配置链接服解决方案以下是创建连接到MySQL服务器的链接服务器......
  • MySQL数据库通过cmd窗口导入sql文件
     在使用mysql数据库是,经常需要备份或者恢复数据库数据,最便捷的方式就是通过导出sql文件备份和直接执行sql文件恢复;以下记录如何进行操作的:一、导出sql文件 1、启动My......
  • 【MySQL练习】基本SELECT语句
    表数据:https://www.cnblogs.com/zhishu/p/16452950.html1.查询员工12个月的工资总和,并起别名为ANNUALSALARY别名中有空格的,要用双引号。IFNULL(expr1,expr2),expr1如果......
  • MySQl中关于JOIN的用法全解
    一、一张图看懂MySQL的各种JOIN用法二、准备表和数据,测试1、创建两个表测试CREATETABLE`forlan_class`( `id`bigint(20)NOTNULLAUTO_INCREMENTCO......
  • MySql必知必会
    MySql必知必会初始化数据库创建数据库CREATEDATABASEcrashcourse;创建表#########################################MySQLCrashCourse#http://www.forta.com......
  • MySQL维护之如何查看执行计划
    实际上在MySQL索引原理之索引分析-池塘里洗澡的鸭子-博客园(cnblogs.com)中已经使用到查看执行计划的命令explain,也进行了各列选项的解释。本文进行补充同时介绍......
  • Mysql数据库巡检(二)
    Mysql数据库巡检(二)1.查看数据库版本mysql>selectversion();2.数据库端口mysql>showglobalvariableslike'port';![img](file:///C:\Users\Administrator\App......
  • rsync同步SQLite3文件API返回旧数据
    问题描述EFCorecannotgetnewvalueindocker,ifusersyncreplacesqlitefile基于.NET6开发一个查询SQLite的API,使用Docker进行部署,通过挂载的方式来访问数据库文......
  • 通用语法与SQL分类
    SQL通用语法SQL语句可以单行或多行书写,以分号结尾。可使用空格和缩进来增强语句的可读性。MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。3.种注释单行注释:-......