SQL インタプリタ
Graph Studioには、ノートブックの段落でSQL文を実行できるSQLインタプリタが用意されています。
SQLインタプリタを使用するには、ノートブックの段落の最初に%sql
を指定し、SQL文を入力する必要があります。 1つの段落で1つのSQL文のみを実行できます。
ヒント:
ノートブックの段落の下部にカーソルを置き、
現在ログインしているユーザーに対してデータベース接続が確立されます。 たとえば、次のSQL文では、データベースにログオンしたユーザーの名前を取得します。
%sql
-- Get Current user
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
次の例は、SQLインタプリタを使用するいくつかのシナリオを示しています。
例: チャートを使用したビジュアライゼーション
ノートブック・パラグラフを使用して、SQL問合せから表形式の出力をビジュアル化できます。 たとえば、特定の顧客が購入した製品を決定する次のSQL問合せは、棒グラフを使用してビジュアル化されます:
%sql
SELECT p.prod_name, count(p.prod_name) AS sold
FROM sh.products p, sh.sales s, sh.customers c
WHERE p.prod_id = s.prod_id AND s.cust_id = c.cust_id AND c.cust_id= 3221
GROUP BY p.prod_name;

「図sql_viz.pngの説明」
例: SQLプロパティ・グラフの作成、問合せ、ビジュアル化および削除
Oracle Database 23aiでAutonomous Databaseインスタンスを使用している場合は、SQLインタプリタを使用してSQLプロパティ・グラフを作成、問合せおよびビジュアル化できます。
次のコードでは、CREATE PROPERTY GRAPH
DDL文を使用して、ノートブックの段落にSQLプロパティ・グラフを作成します:
%sql
CREATE PROPERTY GRAPH bank_sql_pg
VERTEX TABLES (
bank_accounts
KEY (id)
LABEL account
PROPERTIES ALL COLUMNS
)
EDGE TABLES (
bank_txns
KEY (txn_id)
SOURCE KEY (from_acct_id) REFERENCES bank_accounts (id)
DESTINATION KEY (to_acct_id) REFERENCES bank_accounts (id)
LABEL transfer
PROPERTIES ALL COLUMNS
);
SQLグラフ問合せを使用してSQLプロパティ・グラフを問い合せることができます。
%sql
SELECT * FROM GRAPH_TABLE (bank_sql_pg
MATCH
(a IS account WHERE a.id = 816) -[e IS transfer]-> (b IS account)
COLUMNS (a.id AS acc_a, e.amount AS amount, b.id AS acc_b)
);
この問合せの出力は次のようになります。
ACC_A AMOUNT ACC_B
816 8781 287
816 6381 590
816 9011 934
816 6890 289
816 4443 812
また、SQLグラフ問合せの出力をビジュアル化することもできます。 SQLグラフ問合せの頂点およびエッジをビジュアル化するには、頂点およびエッジIDを戻す必要があります。 たとえば:
SELECT id_a, id_e, id_b
FROM GRAPH_TABLE ( BANK_GRAPH
MATCH (a) -[e]-> (b)
COLUMNS (vertex_id(a) AS id_a, edge_id(e) AS id_e, vertex_id(b) AS id_b )
) FETCH FIRST 10 ROWS ONLY
前述の問合せのCOLUMNS
句では、VERTEX_ID
およびEDGE_ID
演算子が使用されています。 SQLグラフ問合せの視覚化出力は次のようになります:
最後に、次のようにDROP PROPERTY GRAPH
DDL文を使用して、SQLプロパティ・グラフを削除できます:
%sql
DROP PROPERTY GRAPH bank_sql_pg;
関連項目:
- 「Oracle Databaseプロパティ・グラフのグラフ開発者ガイド」の「プロパティ・グラフのSQL DDL文」
- 「Oracle Databaseプロパティ・グラフのグラフ開発者ガイド」の「SQLグラフ問合せ」
- 「Oracle Databaseプロパティ・グラフのグラフ開発者ガイド」の「頂点およびエッジ識別子」
例: PGQLプロパティ・グラフのカスタム・データベース・ビューの作成と使用
もう1つの例として、SQLインタプリタを使用してカスタム・データベース・ビューを作成し、これを使用してプロパティ・グラフを作成します。 この例では、PGQLプロパティ・グラフにのみ適用されます。
SQL段落の次のシーケンスに示すように、データベース・ビューはSH
スキーマのSALES
表およびCUSTOMERS
表に作成されます。 また、ビューの主キー制約および外部キー制約も定義されます。
%sql
CREATE VIEW sh_customers
AS SELECT cust_id, cust_first_name, cust_last_name, country_id, cust_city, cust_state_province
FROM sh.customers;
%sql
ALTER VIEW sh_customers
ADD CONSTRAINT shcustomers_id PRIMARY KEY (cust_id)
DISABLE NOVALIDATE;
%sql
CREATE VIEW sh_sales
AS SELECT rownum sale_id, cust_id, prod_id, channel_id, promo_id, quantity_sold, amount_sold
FROM sh.sales;
%sql
ALTER VIEW sh_sales
ADD CONSTRAINT shsales_id PRIMARY KEY (sale_id)
DISABLE NOVALIDATE;
%sql
ALTER VIEW sh_sales
ADD CONSTRAINT shsale_cust_fk FOREIGN KEY (cust_id)
REFERENCES sh_customers DISABLE NOVALIDATE;
次に、次のデータベース・ビュー(「既存のリレーショナル表からのプロパティ・グラフの作成」を参照)を使用して「PGQLプロパティ・グラフ」グラフを作成し、次に示すようにPGQL (PGX)段落でグラフ・ビジュアライゼーションを実行できます:
例: 表ビジュアライゼーションでのXMLサポート
Graph Studioでは、XMLType
およびCLOB
データ型列を使用した表形式データのビジュアル化がサポートされています。 これらの列の結果は解析され、アイテムのツリーとしてレンダリングされます。 表のビジュアライゼーション設定で「XML拡張レベル」を変更することで、レンダリングを変更できます。 デフォルトは1です。