【SAP Hana】X档案:SAP HANA SQL 基础教程

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

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值