"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"or 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)

启用会话:

执行返回所有表格的查询:

使用 limit 查询特定表格:

使用 AS 语句对列重命名:

关闭会话:

ExternalEvaluate 也接受 DatabaseLink`SQLConnection

可以使用任何 DatabaseLink` 支持的 JDBC 驱动:

默认情况下,ExternalEvaluate 使用 Dataset 返回数据:

"ReturnType" 可用于返回不同形式的数据:

开启本地 PostgreSQL 数据库的会话(要执行这个输入,你需要有一个正常运行的 PostgreSQL 数据库实例):

在支持的情况下,ExternalEvaluate 会返回 Wolfram 语言表达式而非字符串:

字符串模板可用于将 Wolfram 语言表达式插入 SQL 代码:

设置两个变量:

表达式 x^2+y^2 在 Wolfram 语言中计算,得到的结果在被转换后插入到 SQL 代码字符串中:

使用 Association 可手动向模板提供参数:

使用有名称的参数:

根据正在使用的数据库后端对参数进行标准化处理. 如果后端支持的话可以使用像 IntegerByteArrayStringDateObjectTimeObject 这样的表达式:

应用  (2)

数据库中有副效应的操作通常返回 Null

对于某些后端,还可以插入数据并指定返回值:

为了后续执行回滚,可以保持连接开放. 启用新的数据库连接:

在其中插入一些数据:

开启事务区块 (transaction block) 并删除某些数据:

检查该行已在事务期间删除:

执行回滚并再次运行该查询:

关闭连接:

可能存在的问题  (2)

通常数据库使用服务器时区返回日期:

更改查询以返回位于特定时区的列:

或可使用 "SessionEpilog" 设置默认时区:

即使在提供了已打开的连接的情况下,ExternalEvaluate 通常也会在内部保持一个新的连接:

StartExternalSession 会创建一个 JDBC 连接:

在删除 ExternalSessionObject 后,连接会自动关闭:

关闭所有等待连接: