SAP HANA SQL: 10 分で基本的なステートメントを学ぶ

⚡ スマートサマリー

SAP HANA SQLは、このプラットフォームの主要なデータベース言語です。スキーマ定義、データ操作、アクセス制御、セッション管理などを、リレーショナルデータベース間でSQLの移植性を高める標準規格に準拠して処理します。

  • 🗣️ 中核的な役割: SQLは、通信するための主要な言語です。 SAP HANAは、他のリレーショナルシステムと同様です。
  • 🏗️ スキーマ作業: CREATE SCHEMA は、テーブル、ビュー、プロシージャを所有する名前空間を確立します。
  • ???? DMLステートメント: SELECT、INSERT、UPDATEは、テーブルに格納されている行を読み取ったり変更したりします。
  • 🧱 DDLステートメント: CREATE、ALTER、DROPは、オブジェクト自体を定義したり、形状を変更したりする操作です。
  • 🔐 DCL声明: GRANTとREVOKEは、どのユーザーがどの操作を実行できるかを制御します。
  • 💬 コメントスタイル: Double ハイフンは1行のコメントを表し、スラッシュとアスタリスクは複数行のコメントを表します。
  • ⚙️ 管理: システム管理、セッション管理、トランザクション管理はすべてSQL文によって行われます。

SAP HANASQL について

ほとんどの RDBMS データベースは SQL データベース言語として人気がある理由は、強力で、ベンダーに依存せず、標準化されていることです。 SAP HANA は SQL もサポートしています。

In SAP HANAでは、SQLが主なデータベース言語です。

何ですか SAP HANASQL?

SQLはStructured Query Languageの略です。これは、次のようなリレーショナル データベースと通信するための標準言語です。 Oracle, MySQL SQL は、データベース内のデータの保存、取得、変更に使用されます。

SQLを使用することで SAP HANAでは、以下の作業を実行できます。

  • スキーマの定義と使用 (CREATE SCHEMA)。
  • DML ステートメント (SELECT、UPDATE、INSERT)。
  • DDLステートメント(CREATE、ALTER、DROP)
  • DCL声明(付与、取消)
  • システム管理
  • セッション管理
  • トランザクション管理

ステートメントは、SQLコンソールから実行されます。 SAP ハナスタジオコマンドラインクライアントから、またはJDBCやODBC経由で接続するアプリケーションからアクセスできます。いずれの場合も、使用する言語は同じです。

SQLステートメントのカテゴリ SAP HANA

すべてのステートメントは、少数のファミリーのいずれかに属します。ステートメントがどのファミリーに属するかを知ることで、ロールバックが可能かどうか、またどのような承認が必要になるかを予測できます。

カテゴリー お名前 典型的な発言 目的
DDL データ定義言語 作成、変更、削除、名前変更 スキーマ、テーブル、ビューなどのオブジェクトを定義および変更します。
DML データ操作言語 選択、挿入、更新、削除、アップサート オブジェクト内に保持されている行を読み取り、変更します。
DCL データ制御言語 許可、取り消し どのユーザーまたはロールがどのアクションを実行できるかを制御します。
TCL トランザクション制御言語 コミット、ロールバック、セーブポイント 作業単位を確定または破棄する
セッション セッション管理 スキーマの設定、接続、トランザクションの設定 現在の接続を設定します
システム システム管理 システムの変更、監視ビュー データベースインスタンス自体を管理します。

UPSERTは、すべての言語方言に存在するわけではないため、注目に値します。キーが新規の場合は行を挿入し、キーが既に存在する場合は更新するため、一般的な2つのステートメントからなるパターンが不要になります。

SQLのコメント

コメントを追加して、SQL ステートメントの可読性と保守性を向上させることができます。 SQL にコメントを付けるには XNUMX つの方法があります。

  • 一行コメント – Double ハイフン「–」。これは1行のコメントです。
  • 複数行コメント – “/* */”。

コメント付きのテキストはすべて SQL パーサーによって無視されます。

-- This is a single line comment
SELECT ELEMENT FROM DHK_SCHEMA.TABLE1;

/* This is a multiple line comment.
   Everything between the markers is ignored
   by the SQL parser. */
SELECT COUNT(*) FROM DHK_SCHEMA.TABLE1;

基本的なSQL構文の例 SAP HANA

以下のステートメントは、スキーマの作成、テーブルの定義、行のロード、およびそれらの読み出しという、日常的な処理サイクルを網羅しています。これらはSQLコンソールで変更せずに実行できます。

1) スキーマを作成します。 スキーマは、その内部で作成されたオブジェクトの所有権を持ち、新しいプロジェクトに必要な最初の要素です。

CREATE SCHEMA DHK_SCHEMA;
SET SCHEMA DHK_SCHEMA;

2) 列テーブルを作成します。 カラムストアはデフォルトであり、HANAの分析速度の理由です。行ストアは、書き込み負荷の高い小規模なテーブルの場合にのみ選択されます。

CREATE COLUMN TABLE DHK_SCHEMA.EMPLOYEE (
  EMP_ID    INTEGER NOT NULL,
  EMP_NAME  NVARCHAR(100),
  HIRE_DATE DATE,
  SALARY    DECIMAL(10,2),
  PRIMARY KEY (EMP_ID)
);

3) 行の挿入と更新。 INSERT文は行を追加し、UPDATE文は既存の行を変更します。すべての行を変更する必要がある場合を除き、UPDATE文は必ずWHERE句と組み合わせて使用​​してください。

INSERT INTO DHK_SCHEMA.EMPLOYEE
  VALUES (1, 'Anita Sharma', '2026-01-15', 55000.00);

UPDATE DHK_SCHEMA.EMPLOYEE
  SET SALARY = 60000.00
  WHERE EMP_ID = 1;

4) データを照会する。 SELECT文は、おなじみのWHERE、GROUP BY、HAVING、ORDER BY句をサポートしています。

SELECT EMP_NAME, SALARY
  FROM DHK_SCHEMA.EMPLOYEE
  WHERE SALARY > 50000
  ORDER BY SALARY DESC;

5) アクセスを許可し、コミットします。 DCLはテーブルを読み取る権限を持つユーザーを制御し、COMMITは作業を永続化します。

GRANT SELECT ON DHK_SCHEMA.EMPLOYEE TO REPORT_USER;
COMMIT;

各列定義のフィールドレベルの詳細は以下に記載されています。 SAP HANAデータ型、および WHERE 句で使用される記号 SAP HANAオペレーター.

SAP HANA SQLと標準SQLの比較

SAP HANAはSQL標準に厳密に準拠しているため、経験豊富な開発者はすぐに生産性を向上させることができます。重要な違いは、標準からの逸脱ではなく、むしろ追加要素です。

エリア 標準SQL SAP HANASQL について
テーブル収納 デフォルトでは行指向 デフォルトでは列ストア、行ストアはオプション
1つのステートメントで挿入または更新 MERGE(サポートされている場合) UPSERT、同じ結果を得るためのよりシンプルな構文
結果セットの制限 方言特有の LIMIT と OFFSET、さらに TOP を追加
手続きの拡張 ベンダー固有 テーブル変数と並列実行を備えたSQLScript
全文検索 通常は追加オプション TEXT列とSHORTTEXT列に組み込まれています
大文字と小文字の区別 不定 区切り文字のない識別子は大文字になり、区切り文字のある識別子は大文字小文字を区別しない。

識別子ルールは最も驚きをもたらします。テーブル名を小文字で二重引用符なしで記述すると大文字で作成され、後で小文字の二重引用符で囲んで選択すると見つかりません。ルールは データ型と識別子 チュートリアルでは、より広いプラットフォームがカバーされています。 SAP HANAチュートリアル シリーズ。

よくあるご質問

SQLは単一のステートメントを扱います。SQLScriptは、変数、ループ、テーブル変数などの手続き型ロジックを追加し、アプリケーション層ではなくデータベース内で複数のステップを実行できるようにします。

ほとんどの場合、列テーブルを使用します。これは、圧縮と分析読み取りがはるかに高速であるためです。行テーブルは、アクセスするたびにレコードごとに完全に読み込まれる、小規模な構成テーブルに適しています。

はい。スキーマが与えられれば、言語モデルは記述されたリクエストから正しいSELECT文を作成します。 Rev疑似クエリであっても誤った質問に答えてしまう可能性があるため、慎重に結合とフィルタリングを行う必要があります。

はい。AIは実行プランを読み取り、書き換え、より適切な結合順序、または不足しているフィルタを提案します。ただし、あるデータ量に有効な提案が別のデータ量に悪影響を与える可能性があるため、結果を測定してください。

いいえ。パーサーは実行前にコメントを破棄するため、実行時にコメントによるコストは発生しません。コメントは、長い分析文を保守しやすくするための最も効率的な方法です。