"SQL-JDBC" (外部評価システム)

サポートされているデータベースのリスト »

詳細

ExternalEvaluateの使用法

  • ExternalEvaluate["SQL-JDBC",code] はデータベース接続でSQLの列を実行し,Wolfram言語式として結果を返す.
  • ExternalEvaluate["SQL-JDBC"form,code] はSQLの列を実行し,指定された form で結果を返す.form に指定できるのは"Dataset""Rows""NamedRows""Columns""NamedColumns"である.
  • ExternalEvaluate[{"SQL-JDBC","Evaluator"Evaluator},] Evaluator として可能な設定:
  • "path"またはFile["path"]SQLiteデータベースへのパス
    URL["url"]"backend://user:password@host:port/name"の形式で指定された接続
    DatabaseReference[]SQLデータベース接続
    SQLConnection[]SQL-JDBCデータベース接続

データ型

  • SQLのデータ型は適切なWolfram言語式にマップされる.
  • 日付と時間は,通常DateObjectTimeObjectに変換される.
  • バイナリデータはByteArrayに変換される.

使用法

  • 列のテンプレート(<**>)はWolfram言語式を評価したりSQLコード列に挿入したりするのに使うことができる.

例題

すべて開くすべて閉じる

  (2)

デモのデータベースへの参照を指定する:

SQLでクエリを評価して結果を返す:

外部言語のセルでSQLを使うためには,デフォルトのデータベースを登録する必要がある:

>をタイプしてドロップダウンメニューからSQL-JDBCを選ぶと,SQL-JDBCコードのセルが得られる:

SELECT * FROM employees LIMIT 10

スコープ  (5)

セッションを開始する:

すべての表を返すクエリを評価する:

制限を使って,一定の表にクエリを行う:

AS文を使って列の名前を変更する

セッションを終了する:

ExternalEvaluateDatabaseLink`SQLConnectionを取ることもできる:

DatabaseLink`でサポートされるJDBCドライバはどれでも使うことができる:

デフォルトではExternalEvaluateDatasetを使ってデータを返す:

別の形式でデータを返すためには"ReturnType"を使うことができる:

ローカルのPostgreSQLデータベースのセッションを開始する(この入力を評価するためには,適切なPostgreSQLデータベースインスタンスが実行している必要がある):

サポートされる場合は,ExternalEvaluateは文字列の代りにWolfram言語式を返す:

列のテンプレートを使うと,Wolfram言語式をSQLコードに挿入することができる:

2つの変数を設定する:

x^2+y^2はWolfram言語内で評価され,結果は変換されてSQLのコード列に挿入される:

Associationを使って,手動でテンプレートに引数を与える:

名前付きの引数を使う:

パラメータは,現在使用中のデータベースのバックエンドに従って自動的に正規化される.IntegerByteArrayStringDateObjectTimeObject等の式は,バックエンドがサポートしている場合は使うことができる:

アプリケーション  (2)

データベースに二次的作用を及ぼしている操作は,通常Nullを返す:

バックエンドによっては,データを挿入し戻り値を指定することができるものもある:

後でロールバックを実行するために接続を開いたままにしておくことができる.新しいデータベース接続を開始する:

その中にデータを挿入する:

トランザクションブロックを開始してデータをいくらか削除する:

トランザクション中に行が削除されたことを確認する:

ロールバックを実行して再びクエリを実行する:

接続を閉じる:

考えられる問題  (2)

通常,データベースはサーバの時刻帯を使って日付を返す:

特定の時刻帯で列を返すよう,クエリを変更する:

または"SessionEpilog"を使ってデフォルトの時刻帯を設定することができる:

ExternalEvaluateは,すでに開いている接続が提供されても常に内部的に新規の接続を維持する.

StartExternalSessionはJDBC接続を確立する:

ExternalSessionObjectを削除すると,接続は自動的に閉じる:

保留中の接続をすべて閉じる: