"SQL" (外部評価システム)
サポートされているデータベースのリスト »ExternalEvaluateの使用法
- ExternalEvaluate["SQL",code] はデータベース接続でSQLの列を実行し,Wolfram言語式として結果を返す.
- ExternalEvaluate["SQL"returntype,code] はSQLの列を実行し,指定された returntype で結果を返す.returntype に指定できるのは"Dataset","Rows","NamedRows","Columns","NamedColumns"である.
- ExternalEvaluate[DatabaseReference[ref],code] はExternalEvaluate[{"SQL","Evaluator"DatabaseReference[ref]},code]と同等である.
- ExternalEvaluate[{"SQL","Evaluator"evaluator},…] の evaluator として可能な設定:
-
"path"またはFile["path"] SQLiteデータベースへのパス URL["url"] "backend://user:password@host:port/name"の形式で指定された接続 DatabaseReference[…] SQLデータベース接続 SQLConnection[…] SQL-JDBCデータベース接続
データ型
- SQLのデータ型は適切なWolfram言語式にマップされる.
- 日付と時間は,通常DateObjectとTimeObjectに変換される.
- バイナリデータはByteArrayに変換される.
- サポートされているデータベースSQLite,PostgreSQL,MySQL,MicrosoftSQL,Oracleのそれぞれについてサポートされるデータ型の完全リストが利用できる.
例題
すべて開くすべて閉じる例 (3)
外部言語のセルでSQLを使うためには,デフォルトのデータベースを登録する必要がある:
>をタイプしてドロップダウンメニューからSQLを選ぶと,SQLコードのセルが得られる:
Fileラッパーを使ってファイルに含まれるコードを実行する:
CloudDeployを使ってコードを配備し,CloudObjectから直接コードを実行する:
URLラッパーを使ってオンラインでホストされたコードを直接実行する:
スコープ (20)
デフォルトではExternalEvaluateはDatasetを使ってデータを返す:
別の形式でデータを返すためには"ReturnType"を使うことができる:
"Columns"を使うと,数値データは可能な場合はパックアレーとして返される:
ローカルのPostgreSQLデータベースのセッションを開始する(この入力を評価するためには,適切なPostgreSQLデータベースインスタンスが実行している必要がある):
サポートされる場合は,ExternalEvaluateは文字列の代りにWolfram言語式を返す:
パラメータは,現在使用中のデータベースバックエンドに従って自動的に正規化される.バックエンドがサポートする場合は,Integer,ByteArray,String,DateObject,TimeObject等の式が使える:
列のテンプレートを使うと,Wolfram言語式をSQLコードに挿入することができる:
式 x^2+y^2はWolfram言語内で評価され,結果は変換されてSQLのコード列に挿入される:
Associationを使って,手動でテンプレートに引数を与える:
セッションオプション (8)
"ReturnType" (3)
SQLでは,デフォルトの戻り型は"Dataset"である:
"ReturnType"はデータを異なる形式で戻すために使うことができる:
"Evaluator" (1)
コマンドオプション (8)
"Command" (4)
Fileラッパーを使ってファイルのコードを実行する:
ほとんどの場合,Associationは省略できる:
URLラッパーを使って,オンラインでホストされるコードを直接実行する:
ほとんどの場合,Associationは省略できる:
CloudObjectにコードを置く:
ほとんどの場合,Associationは省略できる:
"ReturnType" (1)
"TemplateArguments" (3)
コマンドを実行するとき,TemplateExpressionを行内に埋め込むことができる:
"TemplateArguments"を使ってTemplateSlotを明示的に埋めることができる:
リスト以外の引数が与えられると,テンプレートには単独のテンプレート引数が渡される:
テンプレートスロットに名前を付け,Associationを使うと,テンプレートに名前付きの引数を渡すことができる:
アプリケーション (2)
DatabaseReferenceはインメモリのSQLiteデータベースを表すこともできる:
インメモリセッションで行った操作はすべてExternalEvaluate呼出しの最後に失われる:
データベースに二次的作用を及ぼしている操作は通常Nullを返す: