5 SQLグラフ問合せ
GRAPH_TABLE
演算子を使用してSQLプロパティ・グラフを問い合せると、グラフ・パターン一致問合せを表現できます。
グラフ・パターン一致を使用すると、一連のパス・パターンを定義し、それをグラフと照合して一連の解決策を取得できます。次に示すように、GRAPH_TABLE
演算子への入力として問い合せるグラフを、検索するグラフ・パターンを含むMATCH
句とともに指定する必要があります:
SELECT * FROM GRAPH_TABLE (students_graph
MATCH
(a IS person) -[e IS friends]-> (b IS person WHERE b.name = 'Mary')
WHERE a.name='John'
COLUMNS (a.name AS person_a, b.name AS person_b)
);
基本的なSQLグラフ問合せは、次のコンポーネントで構成されます。
FROM
句: 入力グラフ名を最初のパラメータとして使用するGRAPH_TABLE
演算子が含まれています。MATCH
句: SQLプロパティ・グラフで検索されるグラフ要素パターン(頂点またはエッジ・パターン)を表します。オプションで、前述の例((b IS person WHERE b.name = 'Mary')
)問合せに示すように、要素パターンWHERE
句を含めることができます。このインラインWHERE
句は、一致した任意の変数にアクセスできます。WHERE
句: これはオプションの表外のWHERE
句です。要素パターンWHERE
句と同様に、すべてのグラフ・パターン変数にアクセスでき、MATCH
句のパターン全体に適用される述語を表現します。COLUMNS
句: 問合せ出力列が含まれています。
関連項目:
『Oracle Database SQL言語リファレンス』のGRAPH_TABLE演算子次の各項では、SQLグラフ問合せについて詳しく説明します。
- グラフ・パターンについて
SQLグラフ問合せのGRAPH_TABLE
演算子には、グラフ・パターンが含まれます。 - 可変長パス・パターン
可変長グラフ・パターンにより、SQLプロパティ・グラフでの高度な問合せサポートが提供されます。 - 複雑なパス・パターン
複雑なパス・パターンを使用してSQLプロパティ・グラフを問い合せることができます。 - 頂点およびエッジ識別子
SQLグラフ問合せでは、VERTEX_ID
およびEDGE_ID
演算子を使用して、SQLプロパティ・グラフの各頂点およびエッジを一意に識別できます。 - SQLグラフ問合せでの集計関数の使用
SQLグラフ問合せで集計関数を使用すると、集計された出力を取得できます。 - 特定のSCNでのSQLグラフ問合せの実行
SQLグラフ問合せは、特定のシステム変更番号(SCN)またはタイムスタンプ値で実行できます。 - SQLプロパティ・グラフを問い合せる権限
SQLプロパティ・グラフを問い合せるには、READ
またはSELECT
オブジェクト権限が必要です。 - SQLグラフ問合せの例
この項では、固定長および可変長のグラフ・パターン一致問合せを使用したSQLプロパティ・グラフの問合せの例をいくつか示します。 - SQLプロパティ・グラフの問合せでサポートされている機能および制限事項
この項では、SQLプロパティ・グラフの問合せでサポートされている機能およびサポートされていない機能のリストを示します。 - SQLプロパティ・グラフ問合せのチューニング
EXPLAIN PLAN
文を使用して、SQLグラフ問合せをチューニングできます。 - プロパティ・タイプを決定するためのタイプ互換性ルール
論理和互換の共有プロパティ名を使用する場合、プロパティ・タイプは特定のタイプ互換性ルールによって決定されます。 - SQL Developerを使用したSQLプロパティ・グラフの表示および問合せ
SQL Developer 23.1を使用すると、「接続」ナビゲータの「プロパティ・グラフ」ノードの下にある「SQLプロパティ・グラフ」を展開して、データベース・スキーマに存在するすべてのSQLプロパティ・グラフを表示できます。
親トピック: SQLプロパティ・グラフ