10.3 例
この項では、いくつかの例を示します。
PGQLモードをオンにする
この例では、PGQLモードをオンにします。PGQLが有効な場合、PGQLプロンプトが表示されます。
SQL> pgql auto on;
PGQL Auto enabled for graph=[null], execute=[true], translate=[false]
PGQL>
プロパティ・グラフの作成と問合せの実行
この例では、プロパティ・グラフを作成し、新しく作成されたscott_hrグラフに対して問合せを実行します。
PGQL> CREATE PROPERTY GRAPH scott_hr
2 VERTEX TABLES (
3 emp KEY(empno) LABEL Employee
4 PROPERTIES ARE ALL COLUMNS EXCEPT ( deptno ),
5 dept KEY(deptno) LABEL Department
6 PROPERTIES ( deptno, dname )
7 )
8 EDGE TABLES (
9 emp AS works_for
10 KEY(empno)
11 SOURCE KEY ( empno ) REFERENCES emp
12 DESTINATION KEY ( deptno ) REFERENCES dept
13 NO PROPERTIES
14 )
15 OPTIONS(PG_PGQL);
Graph created
PGQL> column name format a15;
PGQL> SELECT e.ename AS name
2 FROM MATCH (e:Employee) ON scott_hr
3 ORDER by e.ename
4 LIMIT 4;
NAME
---------------
ADAMS
ALLEN
BLAKE
CLARK
グラフ・パラメータの定義
graphパラメータを定義して、特定のグラフに対してすべてのPGQL問合せを実行できます。この例では、graphをscott_hrに設定します。問合せにON句は必要ないことに注意してください。
PGQL> pgql auto on graph scott_hr;
PGQL Auto enabled for graph=[SCOTT_HR], execute=[true], translate=[false]
PGQL> column department format a20;
PGQL> column employees format a10;
PGQL> SELECT d.dname AS department, COUNT(e) AS employees
2 FROM MATCH (e:Employee) -[:works_for]-> (d:Department)
3 GROUP BY d
4 ORDER BY employees
5* LIMIT 3;
DEPARTMENT EMPLOYEES
-------------------- ----------
ACCOUNTING 3
RESEARCH 5
SALES 6
パラレル値2を使用したSQL翻訳の表示
この例は、パラレル値2を使用したPGQL問合せのSQL翻訳を示しています。SQL翻訳には、定義されたパラレル値の使用に関するヒントがあることに注意してください。
SQL> pgql auto on translateonly parallel 2;
PGQL Auto enabled for graph=[null], execute=[false], translate=[true]
PGQL> SELECT id(n) FROM MATCH (n) ON scott_hr;
SELECT /*+ parallel(2) */ * FROM(SELECT 7 AS "id(n)$T",
to_nchar(T0$0.VID,'TM9','NLS_Numeric_Characters=''.,''') AS "id(n)$V",
T0$0.VID AS "id(n)$VN",
to_timestamp_tz(null) AS "id(n)$VT"
FROM "SCOTT".SCOTT_HRVD$ T0$0);
PGQLモードをオフにする
この例は、PGQLモードをオフにする方法を示しています。
PGQL> pgql auto off;
PGQL Auto disabled
SQL>