SAP HANA SQL 基础教程
1、SQL 标准简介
SQL是什么?
- SQL (Structured Query Language:结构化查询语言),是用于访问和处理数据库的标准的计算机语言,是关系数据库管理系统(RDBMS)的主要管理工具。
- SQL让您可以访问和处理数据库,包括数据插入、查询、更新和删除,以及数据访问控制。
- SQL 在1986年成为 ANSI(AmericanNational Standards Institute 美国国家标准化组织)的一项标准,在 1987年成为国际标准化组织(ISO)标准。
SQL具体能做什么?
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL可从数据库删除记录
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
SQL只是一种标准
- 虽然 SQL 是一门 ANSI(American National Standards Institute美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言,以各种不同的关系型数据库为代表,如SQLServer、Mysql、Oracle、Hana等。
- 然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如
SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。 - 所以,不同关系型数据库的基本SQL语法是大同小异的,掌握任意一种数据库SQL语法,便能很快上手其他数据库的SQL语法。
RDBMS 是什么?
- RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。
- RDBMS 是SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及Microsoft Access。
- RDBMS 中的数据存储在被称为表的数据库对象中。
- 表是相关的数据项的集合,它由列和行组成。
SAP HANA 是什么?
- SAP HANA数据库,支持标准的关系型数据库特性。数据通常以列式存储为主,也支持行式存储。支持ABAP、JavaScript、Python等,具有基于SQL92 ANSI/ISO标准模型语言。
- SAP HANA是内存数据库,通过使用内存中的数据平台,SAP HANA可以获得比运行在磁盘上的方式更好的整体性能。
更多信息可以参考:《SAP HANA 详细介绍》- 杨林伟
2、HANA STUDIO 的安装
(1)直接拷贝他人的Hana Studio程序包
(2)安装Eclipse,再安装Hana相关组件,请参考《SAP Eclipse ADT开发环境配置与应用》。
3、HANA STUDIO 的设置
包括如何连接 HANA DB 服务器,如何执行SQL查询等。
(1)可以参考《HANA STUDIO的使用入门》。
(2)可以参考《SAP S/4 HANA 数据库底表查询及运维管理》。
4、HANA SQL 基础教程
本SQL教程的示例,使用SAP自带的航班系统数据模型,继续学习之前,请先参考《SAP Flight 航班系统数据模型简介》熟悉该模型的数据关系。
(1)查看表数据
启动 Hana Studio,点击 Hana 服务器,展开Catalog → SAPHANADB(SAP S4对应Schema)→ Tables,右键 → Filters…

搜索过滤 SCARR 表

在 SCARR 表上右键 → Open Data Preview 查看表数据


点击 “Show Log” → 双击 Generated SQL 行 → Copy,复制出数据查询脚本

SELECT TOP 200 "MANDT", "CARRID", "CARRNAME", "CURRCODE", "URL"
FROM "SAPHANADB"."SCARR"
关闭右侧所有窗口,点击 SAPHANADB → 左侧右上角“SQL”按钮 → 打开右侧SQL编辑框 → 粘贴以上脚本 → 执行(F8)

第一条SQL查询语句执行成功

以上过程,也可以直接在 SCARR 表上右键 → Open Content 实现


(2)查看表结构
在 SCARR 表上右键 → Open Definition,或者直接双击 SCARR 表,查看表结构定义。

具体有:表字段名,字段类型,数据长度,列式存储数据类型,关键字,是否允许NULL,默认值,字段注释。

在右侧上方“Table Name”处 右键 → Export SQL,可以导出表格创建脚本


CREATE COLUMN TABLE "SAPHANADB"."SCARR"
(
"MANDT" NVARCHAR(3) DEFAULT '000' NOT NULL ,
"CARRID" NVARCHAR(3) DEFAULT '' NOT NULL ,
"CARRNAME" NVARCHAR(20) DEFAULT '' NOT NULL ,
"CURRCODE" NVARCHAR(5) DEFAULT '' NOT NULL ,
"URL" NVARCHAR(255) DEFAULT '' NOT NULL ,
CONSTRAINT "SCARR~0" PRIMARY KEY ("MANDT","CARRID")
) UNLOAD PRIORITY 5 AUTO MERGE
(3)SELECT
后续我们的操作将主要在 SQL 编辑框内,通过SQL脚本来实现,所以第一步操作,打开 SQL 编辑框。
启动 Hana Studio,点击 Hana 服务器,展开Catalog → SAPHANADB(SAP S4对应Schema)→ 左侧右上角“SQL”按钮 → 打开右侧SQL编辑框 → 输入SQL脚本 → 执行(F8)

SELECT语句:主要用于查询数据库表记录。
示例1:查询航空公司的代码和名称
select carrid, carrname from scarr;

示例2:查询航空公司的所有信息
select mandt, carrid, carrname, currcode, url from scarr;
-- 或者:
select * from scarr;

示例3:查询前2条航空公司记录
select top 2 * from scarr;
--或者:
select * from scarr limit 2;


示例4:查询去重后的航空公司的代码和名称
select distinct carrid, carrname from scarr;

注意事项:
1、hana 数据库对象本身是区分大小写的,定义时未用双引号指定小写的,系统一律会转成大写存储;
2、hana sql脚本没加双引号时,不区分大小写,系统自动会将脚本中所有小写转换成大写后执行,所以以下两句是等效的
select distinct carrid, carrname from scarr;
SELECT Distinct CARRID, CARRNAME FROM Scarr;
3、hana sql脚本添加双引号后,则不会转换大小写,系统会直接按输入的大小去执行,从而可能导致访问失败,如以下脚本,会报错:SAP DBTech JDBC: [259]: invalid table name: Could not find table/view Scarr in schema SAPHANADB: line 1 col 54 (at pos 53)
select distinct carrid, carrname from "Scarr";
4、如果查询的表不在当前登录用户schema下,则需要通过添加schema前缀来访问表,如下所示
select distinct carrid, carrname from saphanadb.scarr;
(4)WHERE
WHERE语句:配合SELECT使用,主要用于查询数据库表记录时的条件查询,或者叫数据过滤。
示例1:查找代码是AC的航空公司名称
select carrname from saphanadb.scarr where carrid = 'AC'; -- 注意:区分大小写

示例2:查找300客户端中的航空公司清单
select * from saphanadb.scarr where mandt = 300;

示例3:查找客户端号大于300的航空公司清单
select * from saphanadb.scarr where mandt > 300

本文介绍了SAPHANA数据库的基础知识,包括SQL标准、HANASTUDIO的安装与设置,以及SQL查询语言的基本用法,如SELECT、WHERE子句等。内容涵盖数据查询、表结构查看、条件过滤等,旨在帮助初学者理解SAPHANA数据库的管理和操作。
最低0.47元/天 解锁文章
25

被折叠的 条评论
为什么被折叠?



