sap hana数据库特点_sap hana数据库

数据库 (1) 2024-08-12 19:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
sap hana数据库特点_sap hana数据库,希望能够帮助你!!!。

SAP HANA 数据库基础知识

  • 1、基本规则
    • (1)注释
    • (2)标识符
    • (3)引号
    • (4)保留字
  • 2、数据类型
    • (1)日期时间类型
    • (2)数字类型
    • (3)字符串类型
    • (4)二进制类型
    • (5)大对象类型
  • 3、操作符
    • (1)一元和二元操作符
    • (2)算术操作符
    • (3)字符串操作符
    • (4)比较操作符
    • (5)逻辑操作符
    • (6)合并操作符
    • (7)操作符优先级
  • 4、表达式
    • (1)常量
    • (2)CASE表达式
    • (3)聚合函数

1、基本规则

(1)注释

添加注释,可以增加SQL语句的可读性和可维护性。

HANA SQL 中注释有以下两种方式:

方式 说明
–(双横线) 单行注释
/* */ 范围内多行注释
select current_date from dummy; --(单行注释)获取系统当前日期 /* (范围注释,多行注释) current_date 用于获取系统当前日期 */ 

(2)标识符

标识符表示各种数据库对象的名称,如数据库、SCHEMA、表、视图、字段、函数、存储过程、用户、角色名等。

HANA SQL 中标识符有以下两种形式:

形式 说明 举例
不加双引号 必须以字母开头,不能包含除数字和下划线以外的符号,HANA内部自动转为大写 newuser
加双引号 可以包含任何字符,包括特殊字符,空格,区分大小写 “@New#_User”

其他限制:
① “SYS”专门为数据库引擎保留,不能用于有些对象命名的前缀,如表名。
② 标识符最大长度为127个字符。

(3)引号

形式 说明 举例
单引号 表示字面量,使用两个单引号就可以代表单引号本身 ‘abc’
双引号 表示对象名,使用两个双引号可以代表双引号本身 “abc”
select 'abc' as "abc" from dummy; /* 说明: 'abc',自定义字符串值,不转换大小写,保持双引号内的大小写; "abc",自定义字段别名,不转换大小写,保持双引号内的大小写。 */ select carrid, "CARRNAME", 'abc' from "SAPHANADB"."SCARR" where mandt = 300; /* 说明: carrid,hana会自动转为CARRID,对应SCARR表里的字段; "CARRNAME",双引号内字母必须大写,否则无法对应SCARR表里的字段; 'abc',自定义字符串值,不对应SCARR表里的字段,系统自送生成字段别名:'abc'; "SAPHANADB"."SCARR",双引号内字母必须大写,否则无法对应SCHEMA及表对象。 */ 

sap hana数据库特点_sap hana数据库_https://bianchenghao6.com/blog_数据库_第1张
sap hana数据库特点_sap hana数据库_https://bianchenghao6.com/blog_数据库_第2张

(4)保留字

保留字对于 SAP HANA 数据库的 SQL 解析器有着特殊含义,不能成为用户自定义的名字。保留字不能在 SQL 语句中使用为集合对象名。如果有必要,你可以使用双引号限定表或列名绕过这个限制。

SAP HANA 数据库的保留字
ALL、ALTER、AS、BEFORE、BEGIN、BOTH、CASE、CHAR、CONDITION、CONNECT、CROSS、CUBE、CURRENT_CONNECTION、CURRENT_DATE、 CURRENT_SCHEMA、CURRENT_TIME、CURRENT_TIMESTAMP、CURRENT_USER、CURRENT_UTCDATE、CURRENT_UTCTIME、CURRENT_UTCTIMESTAMP、CURRVAL、CURSOR、DECLARE、DISTINCT、ELSE、ELSEIF、ELSIF、END、EXCEPT、EXCEPTION、EXEC、FOR、FROM、FULL、GROUP、HAVING、IF、IN、INNER、INOUT、INTERSECT、INTO、IS、JOIN、LEADING、LEFT、LIMIT、LOOP、MINUS、NATURAL、NEXTVAL、NULL、ON、ORDER、OUT、PRIOR、RETURN、RETURNS、REVERSE、RIGHT、ROLLUP、ROWID、SELECT、SET、SQL、START、SYSDATE、SYSTIME、SYSTIMESTAMP、SYSUUID、TOP、TRAILING、UNION、USING、UTCDATE、UTCTIME、UTCTIMESTAMP、VALUES、WHEN、WHERE、WHILE、WITH。

2、数据类型

(1)日期时间类型

数据类型 说明 默认格式 值范围 其他
DATE 日期 YYYY-MM-DD 从 0001-01-01 至 9999-12-31 其他格式有:‘YYYY/MM/DD’、‘YYYY/MM-DD’、‘YYYY-MM/DD’、‘YYYYMMDD’(其中MM还可以有:MON三位月份英文缩写,MONTH月份英文全名,RM月份罗马数字)、‘YYYY-DDD’(其中DDD为一年中的第几天1-366)。
TIME 时间 HH24:MI:SS 从 00:00:01到 24:00:00 HH24 表示从 0 至 23 的小时数, MI 代表 0 至 59 的分钟值而 SS 表示 0 至 59的秒。
SECONDDATE 日期和时间 YYYY-MM-DD HH24:MI:SS 从 0001-01-01 00:00:01 至 9999-12-31 24:00:00 。
TIMESTAMP 时戳 YYYY-MM-DD HH24:MI:SS.FF7 从 0001-01-01 00:00:00.0000000 至 9999-12-31 23:59:59. FFn 代表含有小数的秒,其中 n 表示小数部分的数字位数,1-7位。

(2)数字类型

数据类型 说明 值范围 其他
TINYINT 8 位(1个字节)无符号整数 0 ~ 256(2^8 -1)
SMALLINT 16位(2个字节)位无符号整数 -32768(2^15) ~ 35767(2^15-1)
INTEGER 32位(4个字节)位有符号整数 -2,147,483,648 至 2,147,483,647
BIGINT 64位(8个字节)位有符号整数 -9,223,372,036,854,775,808,至 9, 223,372,036,854,775,807
DECIMAL (p, s) 精度为 p 小数位数为 s 的定点小数 p:1 - 34(默认),s 默认 0
SMALLDECIMAL 浮点十进制数 精度和小数位数可以在范围有所不同,根据存储的数值, 1-16 的精度以及-369-368的小数位数 SMALLDECIMAL 只支持列式存储。
REAL 32 位(4个字节)单精度浮点数
DOUBLE 64 位(8个字节)的双精度浮点数 最小值为-1.79769 x 10308,最大值为1.79769x10308, DOUBLE 最小的正数为 2.2207x10-308,最大的负数为-2.2207x10-308。
FLOAT( n ) 32 位或 64 位的实数 n 指定有效数字的个数,范围可以从 1 至53。如果 n 比 25 小,其会变成 32 位的实数类型;如果 n 大于等于 25,则会成为 64 的 DOUBLE 数据类型。如果 n 没有声明,默认变成 64 位的double 数据类型。

(3)字符串类型

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

数据类型 说明 其他
CHAR (n) 不可变长度的 ASCII 字符串 n 表示最大长度,是一个 1 至5000的整数值
NCHAR (n) 不可变长度的 Unicode 字符串 n 表示最大长度,是一个1 至 5000的整数值
VARCHAR (n) 可变长度的 ASCII 字符串 n 表示最大长度,是一个 1 至5000的整数值
NVARCHAR (n) 可变长度的 Unicode 字符串 n 表示最大长度,是一个1 至 5000的整数值
ALPHANUM (n) 可变长度的包含字母数字的字符串 n 表示最大长度,是一个 1 至 127的整数值
SHORTTEXT (n) 可变长度的字符串 支持文本搜索和字符搜索功能。这不是一个标准的 SQL 类型。选择一列 SHORTTEXT (n) 列会生成一个 NVARCHAR (n)类型的列。

(4)二进制类型

数据类型 说明 其他
VARBINARY 二进制数据类型 以字节为单位, n 代表最大长度,是一个 1 至 5000的整数

(5)大对象类型

BLOB 数据类型用来存储大二进制数据
CLOB 数据类型用来存储大 ASCII 字符数据
NCLOB 数据类型用来存储大 Unicode 字符对象
TEXT 数据类型指定支持文本搜索功能,这不是一个独立的 SQL 类型。 选择一列 TEXT 列会生成一个 NCLOB 类型的列。

LOB(大对象)数据类型, CLOB, NCLOB 和 BLOB,用来存储大量的数据例如文本文件和图像。
一个 LOB 的最大大小为 2GB。
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 列不能使用统计信息更新语句。

3、操作符

你可以在表达式中使用操作符进行算术运算。操作符可以用来计算、比较值或者赋值。

(1)一元和二元操作符

① 一元操作符适用于单个操作数或者单值表达式

名称 操作符 描述
+
- 对一个数取反
逻辑非 NOT 对一个逻辑取反

② 二元操作符适用于两个操作数或者两个值的表达式

名称 操作符 描述
乘除 *,/
加减 +,-
比较 =,!=,<,>,<=,>=
逻辑与或 AND,OR

(2)算术操作符

- + - * /
取反

(3)字符串操作符

|| 连接符

(4)比较操作符

= !=或<> < > <= >=
等于 不等于 小于 大于 小于等于 大于等于

(5)逻辑操作符

AND OR NOT

(6)合并操作符

操作符 说明
UNION 并集、去重
UNION ALL 并集,包括重复
INTERSECT 交集
EXCEPT 差集

(7)操作符优先级

一个表达式可以使用多个操作符。如果操作符大于一个,则 SAP HANA 数据库会根据操作符优先级评估它们。你可以通过使用括号改变顺序,因为在括号内的表达式会第一个评估。

如果没有使用括号,则操作符优先级将根据下表。请注意, SAP HANA 数据库对于优先级相同的操作符将从左至右评估操作符。

优先级由高到低:

优先级 名称 操作符 描述
括号 ()
正负 +,-
| 乘除 *,/
| 加减 +,-
| 级联 ||
| 比较、匹配 =,!=或<>,<,>,<=,>=,IS NULL,LIKE,BETWEEN
| 逻辑取反 NOT
逻辑与 AND
逻辑或 OR

4、表达式

(1)常量

常量类型 说明 示例
字符串常量(ASCII码) 字符串常量括在单引号中 如:‘Brian’,‘100’。
字符串常量(Unicode码) Unicode 字符串的格式与字符串相似,但前面有一个 N 标识符( N 代表 SQL-92 标准中的国际语言)。 N 字母前缀必须是大写 如:N’abc’"
数字常量 数字常量用没有括在单引号中的数字字符串表示。数字可能包含小数点或者科学计数 如:123,123.4,1.234e2
十六进制数字常量 十六进制数字常量是十六进制数的字符串,含有前缀 0x 如:0x0abc
二进制字符串常量 二进制字符串有前缀 X,是一个括在单引号中的十六进制数字字符串 如:X’00abcd’
日期、时间、时间戳常量 日期、时间、时间戳各自有前缀 如:date’2010-01-01’,time’11:00:00.001’, timestamp’2011-12-31 23:59:59’

(2)CASE表达式

select case field when value1 then result1 when value2 then result2 else result3 end as fieldalias from dummy; 

(3)聚合函数

函数 说明
count() 统计数量
sum() 求和
avg() 求平均
max() 求最大值
min() 求最小值

原创文章,转载请注明来源-X档案

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

下一篇

已是最新文章

发表回复