"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"target},…] 中 target 的可能设置包括:
-
"path"or 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 返回数据:
使用 "Columns" 时,如果可能的话数字数据会以打包数组的形式呈现:
开启本地 PostgreSQL 数据库的会话(要执行这个输入,你需要有一个正常运行的 PostgreSQL 数据库实例):
在支持的情况下,ExternalEvaluate 会返回 Wolfram 语言表达式而非字符串:
会根据当前使用的数据库后端自动对参数进行规范化. 如果后端支持,可使用如 Integer、ByteArray、String、DateObject 和 TimeObject 这样的表达式:
字符串模板可用于将 Wolfram 语言表达式插入 SQL 代码:
表达式 x^2+y^2 在 Wolfram 语言中计算,得到的结果在被转换后插入到 SQL 代码字符串中:
使用 Association 可手动向模板提供参数:
会话的选项 (8)
"ReturnType" (3)
对于 SQL,默认的返回类型为 "Dataset":
"Evaluator" (1)
指令的选项 (8)
"Command" (4)
用 File 封装运行文件中的代码:
大多数情况下可以省去 Association:
用 URL 封装直接运行线上的代码:
大多数情况下可以省去 Association:
将代码放入 CloudObject:
大多数情况下可以省去 Association:
"TemplateArguments" (3)
运行指令时,可内嵌 TemplateExpression:
可用 "TemplateArguments" 填充 TemplateSlot:
可以命名模板插槽并使用 Association 将命名参数传递给模板:
应用 (2)
DatabaseReference 可以表示一个内存 SQLite 数据库:
所有在内存会话期间进行的操作会在 ExternalEvaluate 调用的最后丢失:
数据库中有副效应的操作通常返回 Null: