【SAP Hana】X档案:SAP HANA 数据库基础知识

news2024/9/23 13:27:09

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及表对象。
*/

在这里插入图片描述
在这里插入图片描述

(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:00HH24 表示从 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.9999999FFn 代表含有小数的秒,其中 n 表示小数部分的数字位数,1-7位。

(2)数字类型

数据类型说明值范围其他
TINYINT8 位(1个字节)无符号整数0 ~ 256(2^8 -1)
SMALLINT16位(2个字节)位无符号整数-32768(2^15) ~ 35767(2^15-1)
INTEGER32位(4个字节)位有符号整数-2,147,483,648 至 2,147,483,647
BIGINT64位(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 只支持列式存储。
REAL32 位(4个字节)单精度浮点数
DOUBLE64 位(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)逻辑操作符

ANDORNOT

(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档案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SNMP简单网络管理协议

随着网络的规模越来越庞大&#xff0c;网络中的设备种类繁多&#xff0c;如何对越来越复杂的网络进行有效的管理&#xff0c;从而提供高质量的网络服务&#xff0c;已成为网络管理所面临的巨大挑战。网络的管理和运维手段多样&#xff0c;下面将对几种常见的网管与运维手段展开…

[leetcode.29]两数相除,位运算虽好,不要满眼是她

题目如下 不允许用乘除法&#xff0c;但是我们可以用加减法和位运算。。。不过这里不要用位运算&#xff0c;比如说你要是想用补码交替除法&#xff0c;你根本无法获得移动几位&#xff08;移动31位&#xff1f;太鬼畜了吧&#xff09; 所以说单纯的除法部分&#xff0c;我们可…

测试开发 | 实战演练基于加密接口测试测试用例设计

image1080594 76.4 KB 如果接口测试仅仅只是掌握一些requests或者其他一些功能强大的库的用法&#xff0c;是远远不够的&#xff0c;还需要具有根据公司的业务以及需求去定制化一个接口自动化测试框架能力。所以在这个部分&#xff0c;会主要介绍接口测试用例分析以及通用的流程…

从零开始 verilog 以太网交换机(二)MAC接收控制器的设计与实现

从零开始 verilog 以太网交换机&#xff08;二&#xff09;MAC接收控制器的设计与实现 &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN主页 &#x1f9e8; 从零开始 verilog 以太网交换机系列专栏&#xff1a;点击这里 &#x1f511;未经作者允…

plt绘制点线图 点(marker)过密的解决办法

设置 markevery10 plt.plot(x, y, markero, markevery10) import matplotlib.pyplot as plt import numpy as npxnp.arange(0,2*np.pi,0.01) ynp.sin(x)fig, ax plt.subplots(constrained_layoutTrue)plt.title(markevery10)ax.plot(x, y, markero, markevery50, mfcr,mecr)…

(小甲鱼python)函数笔记合集四 函数(IV)总结 函数中参数的作用域 局部作用域 全局作用域 global语句 嵌套函数 nonlocal语句等详解

一、基础复习 函数的基本用法 创建和调用函数 函数的形参与实参等等函数的几种参数 位置参数、关键字参数、默认参数等函数的收集参数*args **args 解包参数详解 二、函数中参数的作用域 作用域&#xff1a;一个变量可以被访问的范围&#xff0c;一个变量的作用域总是由它在代…

jQuery学习-01jQuery下载安装

1 jQuery的介绍 jQuery就是js函数库&#xff0c;里面有大量的js函数库&#xff0c;使用这些函数操作dom对象&#xff0c;做事件&#xff0c;动画&#xff0c;ajax处理&#xff1b; 地址&#xff1a;https://jquery.com/ 2下载 地址&#xff1a;https://jquery.com/download/…

Apache Solr 9.1-(一)初体验单机模式运行

Apache Solr 9.1-&#xff08;一&#xff09;初体验单机模式运行 Solr是一个基于Apache Lucene的搜索服务器&#xff0c;Apache Lucene是开源的、基于Java的信息检索库&#xff0c;Solr能为用户提供无论在任何时候都可以根据用户的查询请求返回结果&#xff0c;它被设计为一个强…

day12-继承

1. 继承 1.1 继承的实现&#xff08;掌握&#xff09; 继承的概念 继承是面向对象三大特征之一&#xff0c;可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;以及追加属性和方法 实现继承的格式 继承通过extends实现格式&#xff1a;class 子…

【算法题】1318. 或运算的最小翻转次数

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你三个正整数 a、b 和 c。 你可…

Webpack:HTML Webpack Plugin插件

HTML Webpack Plugin插件&#xff0c;在Webpack构建的前端项目中&#xff0c;用于简化index.html文件的创建&#xff0c;以免除项目打包之后手动创建/拷贝index.html到打包目录下的繁琐步骤。以下&#xff0c;从一个已构建好的Vue项目中的一个现象谈起&#xff0c;逐步深入了解…

vs code中的platformIO插件,完成Arduino的程序编写,导入,安装开发板管理库

准备工作 vs code已经安装好&#xff0c;扩展插件plateformIO也安装好。&#xff08;下图是platformIO安装方式&#xff09; platformIO界面功能介绍和简单使用 新建Arduino项目 选择正确的开发板型号&#xff0c;和自己习惯的编译框架。打开后有一个.ini的配置文件&#x…

MySQL表的增删改查(初级)

MySQL数据库最核心的内容就是增删改查&#xff08;即CURD&#xff09;,看了这篇初级增删改查的博客之后可以解决以后工作中百分之80-90的内容&#xff0c;这部分的知识并不是很难&#xff0c;但是需要一定的熟练程度&#xff1b;C&#xff1a;create--新增U&#xff1a;update-…

设计模式_行为型模式 -《策略模式》

设计模式_行为型模式 -《策略模式》 笔记整理自 黑马程序员Java设计模式详解&#xff0c; 23种Java设计模式&#xff08;图解框架源码分析实战&#xff09; 概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、…

Nginx应用场景

Nginx应用场景 Nginx配置文件说明 Nginx 的配置文件位置 1、文件位置 安装目录\conf\nginx.conf 安装目录\nginx.conf 2、两个文件是一样的 3、使用 /usr/local/nginx/sbin/nginx 启动 Nginx &#xff0c;默认用的是 安装目录 \nginx.conf 配置文件 4、作用&#xff1a;完…

三、命令行工具cmder的安装

1、cmder安装 1.1、cmder简介 cmder是一个增强型命令工具&#xff0c;不仅可以使用Windows下的所有命令&#xff0c;并且还可以使用Linux和shell命令。 1.2、cmder下载 (1)cmder的官方网站提供的下载地址实在是太慢了基本是下载不下来&#xff0c;建议到清华大学的镜像站去…

SELECT必知必会_引擎,PROCEDURE,事务处理

书接上文&#xff0c;之前说了Mysql的SELECT部分&#xff0c;本片文章会重点介绍关于MySql的其他一些知识&#xff0c;也会是MySql必知必会的最后一篇。 首先&#xff0c;是Mysql中的增删改操作&#xff0c;对于测试岗来说&#xff0c;这部分知识相对来说不是那么重要&#xf…

案例分享 | AI助力肯尼亚“Sheng”语研究

你听说过一种叫做“Sheng”的语言吗&#xff1f;这是一种斯瓦希里语-英语俚语&#xff0c;主要使用者为肯尼亚内罗毕等城市地区的青年。近年来&#xff0c;随着“Sheng”的使用量不断增加&#xff0c;一家非盈利组织正在帮助更新该地区的社区信息资源&#xff0c;随时根据词汇中…

【6s965-fall2022】深度学习的效率指标

两个核心指标是计算和内存(Computation and Memory)。需要考虑的三个维度是存储、延迟和能耗(Storage, Latency, and Energy)。 延迟 Latency Latency max(Toperation,Tmemory)max(T_{operation}, T_{memory})max(Toperation​,Tmemory​) 能耗 Energy 内存访问比计算更消耗…

Softmax Loss、AAM-Softmax(ArcFace)、Sub-center ArcFace的PyTorch实现与代码解读

概述 说话人识别中的损失函数分为基于多类别分类的损失函数&#xff0c;和端到端的损失函数&#xff08;也叫基于度量学习的损失函数&#xff09;&#xff0c;关于这些损失函数的理论部分&#xff0c;可参考说话人识别中的损失函数本文主要关注这些损失函数的实现&#xff0c;…