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グラフ問合せについて詳しく説明します。